對稱的二叉樹


請實現一個函數,用來判斷一棵二叉樹是否是對稱的。注意,若是一個二叉樹同此二叉樹的鏡像是一樣的,定義其爲對稱的java


解題思路

最簡單的方法就是使用遞歸,只要每個結點的左右子結點(子樹)都相等,那麼天然二叉樹就是對稱的。只要有一個不相等,那就返回 false,沒有必要再遞歸下去了node

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;
    }
}
相關文章
相關標籤/搜索