求助代码错在哪里
题目要求:给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
我的代码如图所示,我知道我的代码是错的,但是就答案举的这个例子而言通过我的代码来说返回的应该是True 啊?就单看它所指出的例子而言为什么我的代码不符合要求啊?
(我对比了一下正确答案和我的代码,我只是少考虑了一种情况p和q都为空不存在的时候应该返回True,即漏掉了代码:if not p and not q:
return True但是对于两个一模一样的树且如图都存在而言,我所给出的代码他执行的话应该返回的是True啊,那错在哪里呢)
你把网址发上来不行么?非要让我去找?
https://leetcode-cn.com/problems/same-tree/ 给出一份可用的代码:class Solution:
def isSameTree(self, p: TreeNode, q: TreeNode) -> bool:
if p:
if q:
return (
p.val == q.val
and self.isSameTree(p.left, q.left)
and self.isSameTree(p.right, q.right)
)
return False
return not q 但是对于两个一模一样的树且如图都存在而言,我所给出的代码他执行的话应该返回的是True啊,那错在哪里呢你的程序一定会到达空节点,但是遇到空节点就会返回 False 了。 永恒的蓝色梦想 发表于 2020-8-18 19:13
你的程序一定会到达空节点,但是遇到空节点就会返回 False 了。
一定会遇到空节点是什么意思?代码中怎么体现的? @Twilight6
页:
[1]