【Java】 劍指offer(27) 二叉樹的鏡像
阿新 • • 發佈:2018-10-16
.cn tree 解釋 問題 true mir 形象 收獲 ror
本文參考自《劍指offer》一書,代碼采用Java語言。
更多:《劍指Offer》Java實現合集
題目
請完成一個函數,輸入一個二叉樹,該函數輸出它的鏡像。
思路
畫圖可以很清晰地得到思路:先前序遍歷,對每個結點交換左右子結點。
測試算例
1.功能測試(普通二叉樹;左斜樹;右斜樹;一個結點)
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); } }
收獲
畫圖使抽象問題形象化,面試時要在編程前先用畫圖、舉例子等來解釋思路。
更多:《劍指Offer》Java實現合集
【Java】 劍指offer(27) 二叉樹的鏡像