波大大12138 发表于 2020-8-18 18:36:33

求助代码错在哪里

题目要求:给定两个二叉树,编写一个函数来检验它们是否相同。
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

我的代码如图所示,我知道我的代码是错的,但是就答案举的这个例子而言通过我的代码来说返回的应该是True 啊?就单看它所指出的例子而言为什么我的代码不符合要求啊?

(我对比了一下正确答案和我的代码,我只是少考虑了一种情况p和q都为空不存在的时候应该返回True,即漏掉了代码:if not p and not q:
   return True但是对于两个一模一样的树且如图都存在而言,我所给出的代码他执行的话应该返回的是True啊,那错在哪里呢)

永恒的蓝色梦想 发表于 2020-8-18 19:05:28

你把网址发上来不行么?非要让我去找?
https://leetcode-cn.com/problems/same-tree/

永恒的蓝色梦想 发表于 2020-8-18 19:10:44

给出一份可用的代码: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

永恒的蓝色梦想 发表于 2020-8-18 19:13:36

但是对于两个一模一样的树且如图都存在而言,我所给出的代码他执行的话应该返回的是True啊,那错在哪里呢你的程序一定会到达空节点,但是遇到空节点就会返回 False 了。

波大大12138 发表于 2020-8-18 20:32:53

永恒的蓝色梦想 发表于 2020-8-18 19:13
你的程序一定会到达空节点,但是遇到空节点就会返回 False 了。

一定会遇到空节点是什么意思?代码中怎么体现的?

波大大12138 发表于 2020-8-19 12:52:07

@Twilight6
页: [1]
查看完整版本: 求助代码错在哪里