代码随想录day14

目录

226.翻转二叉树 (优先掌握递归)

101. 对称二叉树 (优先掌握递归)

104.二叉树的最大深度 (优先掌握递归)

111.二叉树的最小深度 (优先掌握递归)


226.翻转二叉树 (优先掌握递归)

题目链接/文章讲解/视频讲解:代码随想录

思路

看图示可以发现是结点相互交换,同时结点的子结点也要跟着结点交换

递归

用前序和后序最方便

前序遍历:

第一步要确定递归函数的返回值和参数

第二步找到终止条件,碰到空结点终止

根据前序遍历的规则:中左右,那么先处理的应该是根节点,即交换其左右子孩子

然后依次遍历处理左、右孩子

class Solution {
    public TreeNode invertTree(TreeNode root) {
        if(root==null)return root;
         TreeNode tmp = root.left;
        root.left = root.right;
        root.right = tmp;
        invertTree(root.left);
        invertTree(root.right);
        return root;
    } 
}
为什么中序遍历不可以

规则为:左中右,先遍历该二叉树的左子树,然后依次向上return,直到整个二叉树的根,反转整个树的左右子树,此时并未遍历翻转的右子树变成了左子树,而后开始遍历右子树(也就是刚刚翻转遍历的左子树),这样一来,原左子树翻转了两遍,而原右子树并未翻转,最后的结果就是只是左右子树翻转一次

101. 对称二叉树 (优先掌握递归)

先看视频讲解,会更容易一些。

题目链接/文章讲解/视频讲解:代码随想录

104.二叉树的最大深度 (优先掌握递归)

什么是深度,什么是高度,如何求深度,如何求高度,这里有关系到二叉树的遍历方式。

大家 要先看视频讲解,就知道以上我说的内容了,很多录友刷过这道题,但理解的还不够。

题目链接/文章讲解/视频讲解: 代码随想录

111.二叉树的最小深度 (优先掌握递归)

先看视频讲解,和最大深度 看似差不多,其实 差距还挺大,有坑。

题目链接/文章讲解/视频讲解:代码随想录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值