1. 程式人生 > >劍指offer——(14)二叉樹的映象(交換二叉樹)

劍指offer——(14)二叉樹的映象(交換二叉樹)

/**
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);
	     }
    }
}