二叉树的镜像(剑指offer-18)
题目描述
操作给定的二叉树,将其变换为源二叉树的镜像。
解析
先前序遍历这棵树的每个结点,如果遍历到的结点有子结点,就交换它的两个子节点,
当交换完所有的非叶子结点的左右子结点之后,就得到了树的镜像
解答
1 /** 2 public class TreeNode { 3 int val = 0; 4 TreeNode left = null; 5 TreeNode right = null; 6 7 public TreeNode(int val) { 8 this.val = val; 9 10 } 11 12 } 13 */ 14 public class Solution { 15 public void Mirror(TreeNode root) { 16 if(root == null) return; 17 swap(root); 18 if(root.left!=null) Mirror(root.left); 19 if(root.right!=null)Mirror(root.right); 20 } 21 private void swap(TreeNode root){ 22 TreeNode t = root.left; 23 root.left = root.right; 24 root.right = t; 25 } 26 }
Stay hungry,Stay foolish