請實作一個函式,用來判斷一棵二叉樹是不是對稱的,注意,如果一個二叉樹同此二叉樹的鏡像是同樣的,定義其為對稱的
解題思路
最簡單的方法就是使用遞回,只要每一個結點的左右子結點(子樹)都相等,那么自然二叉樹就是對稱的,只要有一個不相等,那就回傳 false,沒有必要再遞回下去了
public class Solution {
boolean isSymmetrical(TreeNode pRoot) {
if(pRoot == null) {
return true;
}
return isEqual(pRoot.left, pRoot.right);
}
boolean isEqual(TreeNode node1, TreeNode node2) {
if(node1 == null && node2 == null) {
return true;
}
if(node1 != null && node2 != null && node1.val == node2.val) {
return isEqual(node1.left, node2.right) && isEqual(node1.right, node2.left);
}
return false;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/237929.html
標籤:其他
下一篇:按之字形順序列印二叉樹
