题解 | #对称的二叉树#

对称的二叉树

http://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){  //特殊值判断,如果是空二叉树,则是对称二叉树,返回true
            return true;
        }
        return isSymmetrical2Tree(pRoot,pRoot);
    }
    //该函数用于判断两棵二叉树是否是对称二叉树
    public static boolean isSymmetrical2Tree(TreeNode root1,TreeNode root2){
        //。情况1:如果两棵二叉树都为空,则是对称二叉树
        if(root1 == null && root2 == null){
            return true;
        }
        //。情况2:如果两棵二叉树中有一棵是空二叉树,则不是对称二叉树
        if(root1 == null || root2 == null){
            return false;
        }
        //。情况3:如果两棵二叉树都不为空,则还要进行下一步判断,如果根节点的值不相等,则不是对称二叉树
        if(root1.val != root2.val){
            return false;
        }
        //递归两棵二叉树的子节点
        return isSymmetrical2Tree(root1.left,root2.right) && isSymmetrical2Tree(root1.right,root2.left);
    }
}
全部评论

相关推荐

05-27 14:57
西北大学 golang
强大的社畜在走神:27届真不用急,可以搞点项目、竞赛再沉淀沉淀,我大二的时候还在天天打游戏呢
投递华为等公司10个岗位
点赞 评论 收藏
分享
07-07 12:47
门头沟学院 Java
码农索隆:竟然还真有卡体检报告的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务