数据结构每日学习 Day6 二叉树 树的镜像

前言:

经过这几天 感觉递归的套路好像都一样 虽然现在递归思想明白了 但还是不太会用 这篇博客记录一下这几天的递归套路

例题:
在这里插入图片描述
AC:

package 二叉树;

public class 二叉树的镜像 {
    public class TreeNode {
        int val;
        TreeNode left;
        TreeNode right;
        TreeNode() {}
        TreeNode(int val) { this.val = val; }
        TreeNode(int val, TreeNode left, TreeNode right) {
            this.val = val;
            this.left = left;
            this.right = right;
        }
    }
    public TreeNode mirrorTree(TreeNode root) {

        if(root==null){
            return null;
        }

        TreeNode left=mirrorTree(root.left);
        TreeNode right=mirrorTree(root.right);

        root.left=right;
        root.right=left;

        return root;



    }
}

总结:
1 首先有返回值的递归中 通常都是return null
在这里插入图片描述
2 然后接下来一句有可能会有逻辑代码例如:
如果有累加计数器的话,就需要在每一层递归之前先清空
在这里插入图片描述
如下图的逻辑代码为左右子树吊递归之前执行(由于它是从根开始访问 类似先序遍历 所以逻辑代码放在这)在这里插入图片描述
如下图的逻辑代码放在了左右子树递归之后:(因为这个递归逻辑是自下而上 结果是逐渐累加,最终累加到根节点 有点后序遍历的感觉)
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值