1. 程式人生 > >練習題之二叉樹的映象

練習題之二叉樹的映象

題目:

操作給定的二叉樹,將其變換為源二叉樹的映象。

程式碼實現:

/**
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;
        }
        
        //定義結點儲存左孩子
        TreeNode pNode=root.left;
        
        //將右孩子放到左孩子
        root.left=root.right;
        root.right=pNode;
        
        //遞迴實現
        Mirror(root.left);
        Mirror(root.right);
    }
}