【每日一題-leetcode】101.對稱二叉樹

101.對稱二叉樹

  1. 對稱二叉樹

難度簡單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);
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章