题解 | #对称的二叉树#

对称的二叉树

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

递归

1、如果有左右子树,判断左右子树是否对称相等

2、如果都没有左右子树,返回true

*****

判断左右子树是否对称相等

  1. 如果node1不等于node2的值val,return false

  2. 如果node1有左子树时

    • 如果node2有右子树;递归判断node2的左右子树是否对称相等 ;否则返回false
  3. 同理与2相反

  4. 如果node2有左右节点;return false 否则返回true( 到了这一步,node1必然是左右节点均为null)

    public class Solution {
     boolean isSymmetrical(TreeNode pRoot) {
         if(pRoot==null){
             return true;
         }
         //如果左右子树都存在
         if(pRoot.left!=null&&pRoot.right!=null){
             return JudNodeEque(pRoot.left,pRoot.right);
         }
         if(pRoot.left==null&&pRoot.right==null)
         //判断左右子树的是对称相等
         return true;
         return false;
     }
     public boolean JudNodeEque(TreeNode node1,TreeNode node2){
    
         //如果node1!=node2的值val,return false
         if(node1.val!=node2.val){
             return  false;
         }
         //1、如果node1有左子树时
         //2、如果node2有右子树;递归 ;否则返回false
         if(node1.left!=null){
             if(node2.right!=null){
                 return JudNodeEque(node1.left,node2.right);
             }else{
                 return false;
             }
         }
         //同理与1、2相反
         if(node1.right!=null){
             if(node2.left!=null){
                 return JudNodeEque(node1.right,node2.left);
             }else{
                 return false;
             }
         }
         // 到了这一步,node1必然是左右节点均为null
         if(node2.left!=null||node2.right!=null){
             return false;
         }
         //如果node2有左右节点;return false
         return true;
    
     }
    

}

```

全部评论

相关推荐

ProMonkey2024:5个oc?厉害! 但是有一个小问题:谁问你了?😡我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了(别的帖子偷来的,现学现卖😋)
点赞 评论 收藏
分享
小火柴燃烧吧:接啊,接了之后反手在咸鱼找个大学生搞一下,量大从优
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务