剑指offer4-解决面试题的思路
4.2 画图 题目-二叉树的镜像 操作给定的二叉树,将其变换为源二叉树的镜像。 思路 求二叉树镜像的过程:1)交换根结点的左右子树;2)交换值为10的结点的左右子结点;3)交换值为6的结点的左右子结点。 总结这个过程就是:前序遍历这棵树的每个结点,如果遍历到的结点有子结点,就交换它的两个子结点。 直到交换完所有非叶子结点的左右子结点。 解答 /** 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) || (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