码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode中二叉树镜像的实现

时间:2020-12-18 13:17:04      阅读:3      评论:0      收藏:0      [点我收藏+]

标签:nbsp   一个   步骤   type   lis   ret   ror   不为   返回   

题目

      技术图片

 

 

 

实现思路:  

      通过递归的思路来实现该过程。

      步骤:

      1. 判断当前树是否为空。如果为空直接返回null,反之则执行下一步。
      2. 判断当前左右子树都为空时,直接返回该树。反之执行下一步
      3. 判断当前左右子树有一个不为空时,
        • 当右子树不为空且左子树为空时,将左子树复制到右子树上。之后让左子树为空。
        • 当右子树为空但左子树不为空时,将左子树复制到右子树上。之后让右子树为空。
        • 当两子树都不为空时,重复前面上述步骤。之后将左右子树调换

           4. 返回当前树。

 

 

Java代码

 1  public TreeNode mirrorTree(TreeNode root) {
 2          if(root==null){
 3             return null;
 4         }else if (root.left!=null||root.right != null){
 6             if (root.right==null){
 7                 root.left=mirrorTree(root.left);
 8                 TreeNode treeNode = new TreeNode(root.left.val);
 9                 treeNode.left=root.left.left;
10                 treeNode.right=root.left.right;
11                 root.left=root.right;
12                 root.right=treeNode;
13             }else if (root.left == null) {
14                
15                 root.right=mirrorTree(root.right);
16                 TreeNode treeNode = new TreeNode(root.right.val);
17                 treeNode.left=root.right.left;
18                 treeNode.right=root.right.right;
19                 root.right=root.left;
20                 root.left=treeNode;
21             }else {
22                 root.left=mirrorTree(root.left);
23                 root.right=mirrorTree(root.right);
24                 TreeNode treeNode = new TreeNode(root.right.val);
25                 treeNode.left=root.right.left;
26                 treeNode.right=root.right.right;
27                 root.right=root.left;
28                 root.left=treeNode;
29             }
30         }else {
31             return root;
32         }
33         return root;
34     }

 

 

 

    

      

LeetCode中二叉树镜像的实现

标签:nbsp   一个   步骤   type   lis   ret   ror   不为   返回   

原文地址:https://www.cnblogs.com/996worker/p/14131205.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!