频道栏目
首页 > 程序开发 > 综合编程 > 其他综合 > 正文
二叉树的镜像
2015-07-23 10:37:41         来源:夫唯不争,故天下莫能与之争  
收藏   我要投稿

题目描述:

操作给定的二叉树,将其变换为源二叉树的镜像。
输入描述:
二叉树的镜像定义:
源二叉树 :

        8
       /  
      6   10
     /   / 
    5  7 9 11

镜像二叉树:

        8
       /  
      10   6
     /   / 
    11 9 7  5

思路:
所谓的镜像,就是交换每一个节点的左子树和右子树。
所以依次递归每一个节点,交换左右子树即可。
步骤:

1、     8                      8
       /                     / 
      6   10        ==》     10  6
     /   /               /   / 
    5  7 9 11             9  11 5  7

2、
        8                      8
       /                     / 
      10   6        ==》     10  6
     /   /               /   / 
    9  11 5 7             11  9 7  5

代码描述:

 public class MirrorTree{
    public void Mirror(TreeNode root) {
        if(root==null)return ;
        if(root.left==null&&root.right==null)
            return;
        if(root!=null)
        {
              swapTree(root);
              Mirror(root.left);
              Mirror(root.right);

        }
    }
    public void swapTree(TreeNode root)
    {
        TreeNode temp = root.left;
        root.left = root.right;
        root.right = temp;

    }
}

 

点击复制链接 与好友分享!回本站首页
相关TAG标签 镜像
上一篇:Snail—UI学习之得到某组件的方法
下一篇:单链表的相关操作
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站