首页 > 解决方案 > 我的代码和检查两个二叉树是否相同的解决方案有什么区别?

问题描述

我正在编写代码来检查两棵树是否相同,但我需要帮助来确定我编写的代码与实际解决方案之间有什么不同。

这是我的代码:

class Solution:
    def isSameTree(self, p: TreeNode, q: TreeNode) -> bool:
        if not p or not q:
            return False
        if not p and not q:
            return True
        if p.val != q.val:
            return False

        return self.isSameTree(p.right,q.right) and self.isSameTree(p.left,q.left)

这是正确的代码:

class Solution:
    def isSameTree(self, p, q):
        
        if not p and not q:
            return True

        if not q or not p:
            return False
        if p.val != q.val:
            return False
        return self.isSameTree(p.right, q.right) and \
               self.isSameTree(p.left, q.left)

标签: pythontree

解决方案


条件if not p or not q:包含 p 和 q 为 None 的情况,在这种情况下,当您在代码中 return 时,两棵树显然是相同的False


推荐阅读