LeetCode 100相同的树 详细解读

题目:

给定两颗二叉树的根节点p,q,编写一个函数来检验两个树是否相同。如果两个树的结构相同并且节点具有相同的值,则认为他们是相同的。

示例:略

思路:
这是一道简单的二叉树的问题,首先还是先写条件上的判断,如果两个树都为空,则相同,如果有一个树为空,另一个不为空则不相同,如果节点值再不相同也不是相同的树。

错误代码:

class Solution {
    
    
    public boolean isSameTree(TreeNode p, TreeNode q) {
    
    
        if(p==null&&q==null){
    
    
            return true;
        }else if(p==null||q==null){
    
    
            return false;
        }else if(p.val!=q.val){
    
    
            return false;
        }else{
    
    
            //如果两次递归的结果全是false用==返回值是true
            return isSameTree(p.left,q.left)==isSameTree(p.right,q.right);
        }      
    }
}

正确代码:

class Solution {
    
    
    public boolean isSameTree(TreeNode p, TreeNode q) {
    
    
        if(p==null&&q==null){
    
    
            return true;
        }else if(p==null||q==null){
    
    
            return false;
        }else if(p.val!=q.val){
    
    
            return false;
        }else{
    
    
            return isSameTree(p.left,q.left)&&isSameTree(p.right,q.right);
        }      
    }
}

Guess you like

Origin blog.csdn.net/weixin_43744992/article/details/121602505