二叉树的镜像

二叉树的镜像

http://www.nowcoder.com/questionTerminal/564f4c26aa584921bc75623e48ca3011

二叉树的镜像

题目:
操作给定的二叉树,将其变换为源二叉树的镜像。
思路:

  • 交换左右子树

  • 递归左右子树的镜像

  • 终止条件为当前结点为叶结点
    代码实现:

    public void Mirror(TreeNode root){
          if(root ==null)
             return;
          if(root.left ==null && root.right ==null)
              return;
          //交换左右子树
          TreeNode tmp = root.left;
          root.left = root.right;
          root.right = tmp;
          //递归将两给子树的左右子树镜像
          if(root.left !=null)
              Mirror(root.left);
          if(root.right !=null)
              Mirror(root.right);
    
      }
    
全部评论
谢谢楼主,不过if(root.left ==null && root.right ==null)这里多余了(如果左子树是空,那temp就是null,最后右子树就是空);左右子树递归也不用判断判断是否为空。我看了别人的回答过来的,单纯交流不要喷我
2 回复 分享
发布于 2020-04-25 16:24

相关推荐

螺丝钉儿:参赛经历是什么鬼,改成荣誉奖项吧
点赞 评论 收藏
分享
评论
6
收藏
分享
牛客网
牛客企业服务