JZ-058-對稱的二叉樹

雄獅虎豹發表於2022-01-22

對稱的二叉樹

題目描述

請實現一個函式,用來判斷一棵二叉樹是不是對稱的。注意,如果一個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。

題目連結: 對稱的二叉樹

程式碼

/**
 * 標題:對稱的二叉樹
 * 題目描述
 * 請實現一個函式,用來判斷一棵二叉樹是不是對稱的。注意,如果一個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。
 * 題目連結:
 * https://www.nowcoder.com/practice/ff05d44dfdb04e1d83bdbdab320efbcb?tpId=13&&tqId=11211&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
 */
public class Jz58 {

    boolean isSymmetrical(TreeNode pRoot) {
        if (pRoot == null) {
            return true;
        }
        return isSymmetrical(pRoot.left, pRoot.right);
    }

    /**
     * 遞迴
     *
     * @param t1
     * @param t2
     * @return
     */
    private boolean isSymmetrical(TreeNode t1, TreeNode t2) {
        if (t1 == null && t2 == null) {
            return true;
        }
        if (t1 == null || t2 == null) {
            return false;
        }
        if (t1.val != t2.val) {
            return false;
        }
        return isSymmetrical(t1.left, t2.right) && isSymmetrical(t1.right, t2.left);
    }

    public static void main(String[] args) {

    }
}
【每日寄語】 要永遠面朝陽光生活,這樣的話,那些不好的陰影就會被甩到後面。

相關文章