zoukankan      html  css  js  c++  java
  • 【剑指Offer】18、二叉树的镜像

      题目描述:

      操作给定的二叉树,将其变换为原二叉树的镜像。

      解题思路:

      求一棵树的镜像的过程:先前序遍历这棵树的每个结点,如果遍历到的结点有子结点,就交换它的两个子结点。当交换完所有的非叶结点的左、右子结点后,就可以得到该树的镜像。

      如下面的例子,先交换根节点的两个子结点之后,我们注意到值为10、6的结点的子结点仍然保持不变,因此我们还需要交换这两个结点的左右子结点。做完这两次交换之后,我们已经遍历完所有的非叶结点。此时变换之后的树刚好就是原始树的镜像。

      举例:

      编程实现(Java):

        public void Mirror(TreeNode root) {
            /*思路:左右结点互换*/
            if(root!=null){
                if(root.left!=null || root.right!=null){
                    TreeNode temp=root.left;
                    root.left=root.right;
                    root.right=temp;
                    Mirror(root.left);
                    Mirror(root.right);
                }
            }
        }
    
  • 相关阅读:
    第三次作业
    第二次作业
    第一次作业
    软件工程第0次作业
    第四次作业
    第三次作业
    第二次作业
    第一次作业
    第零次作业
    第四次软件工程作业
  • 原文地址:https://www.cnblogs.com/gzshan/p/10778851.html
Copyright © 2011-2022 走看看