【发布时间】:2021-05-14 11:31:21
【问题描述】:
我正在编写代码来检查两棵树是否相同,但我需要帮助来确定我编写的代码与实际解决方案之间有什么不同。
这是我的代码:
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)
【问题讨论】:
-
if not p and not q:在你的版本中永远不会是真的,因为之前的if已经处理了这个(更强的)条件。顺序很重要。