题解 | #对称的二叉树#

对称的二叉树

https://www.nowcoder.com/practice/ff05d44dfdb04e1d83bdbdab320efbcb

/*
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

    }

}
*/
public class Solution {
    boolean isSymmetrical(TreeNode pRoot) {
        // 用递归方法实现
        if(pRoot == null){
            return true;
        }
        return isSymmetrical(pRoot.left,pRoot.right);
        
    }
    private boolean isSymmetrical(TreeNode left, TreeNode right){
        if(left == null && right == null ){
            return true;
        }
        // 一边有,一边没有,肯定不对称;数值不相等,也不对称
        if(left == null || right == null  || left.val != right.val ){
            return false;
        }
        return isSymmetrical(left.left,right.right) && isSymmetrical(left.right,right.left);
        
    }
}

对称二叉树,其实就是自己成镜像。

递归,出口,root为null,return true;一边null,一边不是null,return false;两边值不等,return false;然后就是进入递归。对称二叉树,是左左与右右相等,左右与右左相等,这点不要搞错了,所以进入递归比较的应该是他们,不要比较成了其他的。

全部评论

相关推荐

尊嘟假嘟点击就送:加v细说,问题很大
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务