Same Tree同树比较

Easy

判断两棵树是否相同。

这是简单的递归问题,比较根节点,然后左分支与左分支比较,右分支与右分支比较。

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution(object):
    

def isSameTree(self, p, q):
        """
        :type p: TreeNode
        :type q: TreeNode
        :rtype: bool
        """

        if p and q:
            if p.val == q.val:
                return self.isSameTree(p.left, q.left) and self.isSameTree(p.right, q.right)
            else:
                return False
        elif p == q:
            return True
        else:
            return False

这里有个问题,我一开始写的代码中if p.val == q.val的内部环境如下,判断相同后返回True, 结果返回错误。此处原因与null的存在有关,但具体怎么解释我还不是很清楚。

            if p.val == q.val:
                if self.isSameTree(p.left, q.left) and self.isSameTree(p.right, q.right):
                    return True
Submission Result: Wrong Answer

Input:
[10,5,15]
[10,5,null,null,15]
Output:
null
Expected:
false
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容