摘要: Invert a Binary Tree pat-1102 import java.util.Arrays; import java.util.Queue; import java.util.Scanner; import java.util.concurrent.LinkedBlockingQue 阅读全文
posted @ 2020-09-05 20:35 Garrett_Wale 阅读(91) 评论(0) 推荐(0) 编辑
摘要: Pre- and Post-order Traversals PAT-1119 这题难度较大,主要需要考虑如何实现根据前序遍历和后序遍历来确定一颗二叉树 一篇好的文章: 题解 import java.util.Scanner; /** * @Author WaleGarrett * @Date 20 阅读全文
posted @ 2020-09-05 19:47 Garrett_Wale 阅读(139) 评论(0) 推荐(0) 编辑
摘要: LCA in a Binary Tree PAT-1151 本题的困难在于如何在中序遍历和前序遍历已知的情况下找出两个结点的最近公共祖先。 可以利用据中序遍历和前序遍历构建树的思路,判断两个结点在根节点的左右子树,依次递归找到最近祖先 import java.util.HashMap; import 阅读全文
posted @ 2020-09-05 18:03 Garrett_Wale 阅读(147) 评论(0) 推荐(0) 编辑
摘要: Build A Binary Search Tree PAT-1099 本题有意思的一个点就是:题目已经给出了一颗排序二叉树的结构,需要根据这个结构和中序遍历序列重构一棵二叉排序树。 解法:可以根据中序遍历的思路,首先将给定的序列串进行排序即是中序遍历的结果。接着,根据给定的树结构进行中序遍历,这期 阅读全文
posted @ 2020-09-05 16:55 Garrett_Wale 阅读(157) 评论(0) 推荐(0) 编辑
摘要: Tree Traversals Again Tree Traversals Again 这里的第一个tip就是注意到非递归中序遍历的过程中,进栈的顺序恰好是前序遍历的顺序,而出栈的顺序恰好是中序遍历的顺序。 第二个需要注意的就是如何根据中序遍历和前序遍历构建出一棵二叉树。 第三个是二叉树的后序遍历, 阅读全文
posted @ 2020-09-05 16:18 Garrett_Wale 阅读(118) 评论(0) 推荐(0) 编辑
摘要: Root of AVL Tree PAT-1066 这是关于AVL即二叉平衡查找树的基本操作,包括旋转和插入 这里的数据结构主要在原来的基础上加上节点的高度信息。 import java.util.*; /** * @Author WaleGarrett * @Date 2020/9/5 10:41 阅读全文
posted @ 2020-09-05 11:53 Garrett_Wale 阅读(138) 评论(0) 推荐(0) 编辑
摘要: Complete Binary Search Tree PAT-1064 本次因为涉及到完全二叉排序树,所以可以使用数组的形式来存储二叉排序树 对输入序列排序后,得到的是中序遍历二叉排序树的序列。对这颗二叉排序树进行中序遍历,将每个结点的值放入二叉树的存储数组中,最后遍历数组即可求出层次遍历的序列。 阅读全文
posted @ 2020-09-05 10:31 Garrett_Wale 阅读(125) 评论(0) 推荐(0) 编辑
摘要: Is It a Binary Search Tree PAT-1043 主要涉及到根据前序遍历序列片段是否是一颗二叉树,这里有一个小tip就是插入序列就是二叉树的前序遍历序列。 第二个是会对排序二叉树进行前序遍历,后序遍历,镜像排序二叉树的前序遍历,后序遍历等操作。 题目的整体难度不大,但是对二叉树 阅读全文
posted @ 2020-09-05 09:50 Garrett_Wale 阅读(127) 评论(0) 推荐(0) 编辑