【Java】 劍指offer(27) 二叉樹的鏡像

本文參考自《劍指offer》一書,代碼採用Java語言。html

更多:《劍指Offer》Java實現合集  java

題目 

  請完成一個函數,輸入一個二叉樹,該函數輸出它的鏡像。面試

思路

  畫圖能夠很清晰地獲得思路:先前序遍歷,對每一個結點交換左右子結點。編程

測試算例 函數

  1.功能測試(普通二叉樹;左斜樹;右斜樹;一個結點)post

  2.特殊測試(根結點爲null;)測試

Java代碼

//題目:請完成一個函數,輸入一個二叉樹,該函數輸出它的鏡像。

public class MirrorOfBinaryTree {
	public class TreeNode {
	    int val = 0;
	    TreeNode left = null;
	    TreeNode right = null;
	    public TreeNode(int val) {
	        this.val = val;
	    }
	}
	
    public void Mirror(TreeNode root) {
        if(root==null)
        	return;
        //左右子結點交換
        TreeNode tempNode = root.left;
        root.left=root.right;
        root.right=tempNode;  	

        Mirror(root.left);
        Mirror(root.right);
    }
}

   

收穫

  畫圖使抽象問題形象化,面試時要在編程前先用畫圖、舉例子等來解釋思路。this

  

更多:《劍指Offer》Java實現合集  url

相關文章
相關標籤/搜索