关于树与二叉树的问题的一些理解和总结

树与二叉树的主要题型:

1.重建二叉树
2.二叉树的下一个结点
3.树的子结构(判断B是不是A的子结构)
4.二叉树的镜像(判断一棵二叉树是不是对称的)
5.对称二叉树(同上)
6.从上到下打印二叉树(层次遍历)
7.二叉树的后续遍历序列(重点是非递归)
8.二叉树从根结点到某一节点的路径上结点值的和为sum,输出这样的结点和整个序列
9.序列化二叉树(序列化和反序列化,即根据前中后任意一种遍历构造二叉树,或者由二叉树得到前中后序遍历的结果)
10.二叉树的第k大的结点(此题是对二叉排序树的操作)
11.二叉树的深度

树与二叉树的解题思路:

**

1.根据对树的前中后序遍历来解决问题,主要是对原有visit函数的地方修改为所要做的处理

**

重建二叉树:
根据前、中序遍历,找到二叉树的根节点和左右子树的规律,然后递归构建二叉树。

二叉树的下一节点:
根据中序遍历,找出包含任何节点的一下节点的所有可能情况,然后根据情况分别进行判断。

二叉树的后续遍历序列:
通过中序遍历找到打印二叉树结点的规律,可以判断此后续遍历是否为二叉树。

二叉树和为某一值的路径:
选择二叉树的遍历,对每个节点进行存储判断,然后根据二叉树叶子节点的特点,进行对问题的解决。

二叉树的第 K 大结点:
中序遍历的结果是从小到大,然后倒数找到第 K 大数据。

序列化二叉树:
遍历二叉树,遇到 null 转化为特殊符号。

2.根据树的结构寻找规律来解决问题

树的子结构:
根据子结构和主体树的特点,对其树的结构进行分析,可以找到解题的思路。

镜像二叉树:
观察镜像二叉树的左右子节点交换特点,可以找到解题思路。
结构上:在结构上实对称的,某一节点的左子节点和某一节点的右子节点对称。
规律上:我们如果进行前序遍历(根、左、右),然后对前序遍历进行改进(根、右、左),如果是对称的二叉树,他们的遍历结果是相同的*。

对称二叉树:
观察对称二叉树有什么特点,在结构上和遍历上寻找特点和规律,可以找到解题思路。

按层遍历二叉树:
根据二叉树每层节点的结构关系(父子关系),可以进行每层遍历,通过上层找到下层的遍历结点。

反序列化二叉树:
根据遍历的规律和二叉树的规律,将遍历结果生成一棵二叉树。

你可能感兴趣的:(笔记,数据结构问题)