本文參考自《劍指offer》一書,代碼採用Java語言。html
更多:《劍指Offer》Java實現合集 java
請完成一個函數,輸入一個二叉樹,該函數輸出它的鏡像。面試
畫圖能夠很清晰地獲得思路:先前序遍歷,對每一個結點交換左右子結點。編程
測試算例 函數
1.功能測試(普通二叉樹;左斜樹;右斜樹;一個結點)post
2.特殊測試(根結點爲null;)測試
//題目:請完成一個函數,輸入一個二叉樹,該函數輸出它的鏡像。 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