劍指offer——(14)二叉樹的映象(交換二叉樹)
阿新 • • 發佈:2018-11-30
/** 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 T) { if (T==null||(T.left==null&&T.right==null)) return; else if(T.left!=null&&T.right==null) { T.right = T.left; T.left = null; //左子樹移到右子樹了 原來的左子樹要置為空 否則出來的樹是對稱的 Mirror(T.right); } else if(T.left==null&&T.right!=null) { T.left = T.right; T.right = null; //同理 Mirror(T.left); } else { TreeNode temp = T.left; T.left = T.right; T.right = temp; Mirror(T.left); Mirror(T.right); } } }