题解 | #判断是不是平衡二叉树#

对称的二叉树

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){return true;}
    
      return check(pRoot.left,pRoot.right);
}
boolean check(TreeNode a, TreeNode b) {
    if(a == null && b == null) return true;
    if (a == null && b != null) return false;
      
    if (a != null && b == null) return false;
        
    
        if ( a.val != b.val) return false;
   
    
    return check(a.left, b.right) && check(a.right, b.left);
}

}

全部评论

相关推荐

酷酷我灵儿帅:这去不去和线不线下面说实话没啥关系
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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