LeetCode101.对称二叉树

发布时间 2023-10-11 14:06:45作者: rockdow
class Solution {
    //ArrayDeque不支持添加null
    public boolean isSymmetric(TreeNode root) {
        return dfs(root.left,root.right);
    }
    // 实际上,递归比较的就是根节点左右子树上,对称位置的节点
    boolean dfs(TreeNode left,TreeNode right){
        if(left==null && right==null){
            return true;//如果节点确实对称,总会走到这步返回true
        }
        if(left==null || right==null){
            return false;//一个为空,另一个不空
        }
        if(left.val != right.val){
            return false;//如果节点不空且val值相等,相当于继续递归判断,这里可以提前结束递归
        }
        return dfs(left.left,right.right) && dfs(left.right,right.left);
    }
}