一棵二叉树引发的问题


后面补写

一、科普二叉树

二叉树(binary tree)是指树中节点的度不大于2的有序树。

那什么是度呢?简单来说就是拥有子树的数目。

二叉树的性质

二、二叉树的遍历

最常见的遍历方式有三种,先序遍历、中序遍历、后序遍历。

先序遍历、 (根左右)

中序遍历、(左根右)

后序遍历、(左右根)

简单来说就是遍历的顺序不同,上面这个引用需要牢记,后面要用。

简单的遍历问题

image-20200908200236009

写出前中后序遍历的结果?

中序遍历: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 题目

144. 二叉树的前序遍历

94. 二叉树的中序遍历

145. 二叉树的后序遍历

三、已知前中后序其二,求另外其一

注意;给出先序和后序,不能唯一确定二叉树。

其实我觉得你们看了下面的三篇文章,应该就知道问题,知道如何求解了,我也是在做了7,8道这样的题才大致理解到的。

我就不赘述了。都是明白人。

下面的文章得看

已知中序遍历和后序遍历,画出此二叉树

刷题笔记——前序、中序、后序遍历知二求一

二叉树的前序遍历、中序遍历和后序遍历之间还原二叉树

四、代码解决上面问题

105. 从前序与中序遍历序列构造二叉树

106. 从中序与后序遍历序列构造二叉树

猜你喜欢

转载自blog.csdn.net/weixin_41288824/article/details/108477548