快捷搜索: 王者荣耀 脱发

剑指offer之个人刷题历程记录

二叉树的镜像

题目描述: 操作给定的二叉树,将其变换为源二叉树的镜像。) 知识点: 二叉树 解题思路: 我们求得一棵树的镜像的过程:我们先前序遍历这棵树的每个结点,如果遍历到的结点有左右子树,即有左右子结点。则交换它的两个子结点。交换完所有非叶子结点的子结点之后,得到树的镜像。 具体代码:

/**
public class TreeNode {
   int val = 0;
   TreeNode left = null;
   TreeNode right = null;

   public TreeNode(int val) {
       this.val = val;

   }

}
*/
public class Solution {
          
   
   public void Mirror(TreeNode root) {
          
   
       if(root==null)
           return;
       if(root.left==null&&root.right==null)
           return;
       TreeNode temp=root.left;
       root.left=root.right;
       root.right=temp;
       if(root.left!=null)
           Mirror(root.left);
       if(root.right!=null)
           Mirror(root.right);
   }
}

注意点: 对树的遍历清楚,对递归的过程清楚。

经验分享 程序员 微信小程序 职场和发展