101.對稱二叉樹
- 對稱二叉樹
難度簡單882
給定一個二叉樹,檢查它是否是鏡像對稱的。
例如,二叉樹 [1,2,2,3,4,4,3] 是對稱的。
1 / \ 2 2 / \ / \ 3 4 4 3
但是下面這個 [1,2,2,null,3,null,3] 則不是鏡像對稱的:
1 / \ 2 2 \ \ 3 3
遞歸終止條件 當都是空指針 說明兩者相等。 如果一個爲null 一個不爲null 說明兩者不等返回false
遞歸去判斷A的左子樹和B的右子樹 以及 A的右子樹和B的左子樹。其中短路與的作用決定如果一個子樹不對稱,那麼整顆樹是不對稱的。
public boolean isSymmetric(TreeNode root) {
return isMirror(root,root);
}
public boolean isMirror(TreeNode root1,TreeNode root2){
if(root1 == null && root2 == null){
return true;
}
if(root1 == null || root2 == null){
return false;
}
return (root1.val == root2.val) && isMirror(root1.left,root2.right) && isMirror(root1.right,root2.left);
}