一棵二叉树引发的问题
后面补写
一、科普二叉树
二叉树(binary tree)是指树中节点的度不大于2的有序树。
那什么是度呢?简单来说就是拥有子树的数目。
二叉树的性质
略
二、二叉树的遍历
最常见的遍历方式有三种,先序遍历、中序遍历、后序遍历。
先序遍历、 (根左右)
中序遍历、(左根右)
后序遍历、(左右根)
简单来说就是遍历的顺序不同,上面这个引用需要牢记,后面要用。
简单的遍历问题
写出前中后序遍历的结果?
中序遍历:6,2,5,7,11,2,5,9,4
先序遍历:2,7,2,6,5,11,5,9,4
后序遍历:6,5,2,11,7,4,9,5,2
递归-直接了当
由于二叉树的特殊的结构,可以把根节点的子节点看作是根,还是一棵二叉树,所以可以递归调用。
就以中序序遍历为例:
class Solution {
public List < Integer > inorderTraversal(TreeNode root) {
List < Integer > res = new ArrayList < > ();
helper(root, res);
return res;
}
public void helper(TreeNode root, List < Integer > res) {
if (root != null) {
if (root.left != null) {
helper(root.left, res);
}
res.add(root.val);
if (root.right != null) {
helper(root.right, res);
}
}
}
}
迭代-栈辅助
这个后面 补写;
LeetCode 题目
三、已知前中后序其二,求另外其一
注意;给出先序和后序,不能唯一确定二叉树。
其实我觉得你们看了下面的三篇文章,应该就知道问题,知道如何求解了,我也是在做了7,8道这样的题才大致理解到的。
我就不赘述了。都是明白人。