Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我的leetcode“路径和”算法有什么问题?_Python_Python 3.x_Algorithm - Fatal编程技术网

Python 我的leetcode“路径和”算法有什么问题?

Python 我的leetcode“路径和”算法有什么问题?,python,python-3.x,algorithm,Python,Python 3.x,Algorithm,我正在leetcode上练习,但在一次测试中被卡住了,无法找出我的错误。任何帮助都将不胜感激 问题: 给定二叉树的根和整数targetSum,如果树有根到叶的路径,则返回true,这样沿路径的所有值相加等于targetSum 叶是没有子节点的节点 例1: 我的代码落在这个测试用例上: [1,2,3] 5 [1, 2, 3] 4 让我们手动浏览您的代码。我将使用连字符来表示执行过程中给定点上每个变量的状态 First iteration of outer while loop: - s

我正在leetcode上练习,但在一次测试中被卡住了,无法找出我的错误。任何帮助都将不胜感激

问题: 给定二叉树的根和整数targetSum,如果树有根到叶的路径,则返回true,这样沿路径的所有值相加等于targetSum

叶是没有子节点的节点

例1:

我的代码落在这个测试用例上:

[1,2,3]
5
[1, 2, 3]
4

让我们手动浏览您的代码。我将使用连字符来表示执行过程中给定点上每个变量的状态

  First iteration of outer while loop:
  - stack (top -> bottom = left -> right) = empty
  - sum1 = 0
  - root = node 1
    First iteration of inner while loop:
      stack.append(node 1)
      sum1 = 0 + 1 = 1
      root = node 1.left = node 2
    Second iteration of inner while loop:
      stack.append(node 2)
      sum1 = 1 + 2 = 3
      root = node 2.left = None (break)
  - stack = node 2, node 1
  - sum1 = 3
  - root = None
    sum1 == 5 is false, so do not return "true"
    root = None, break
  Outside while loop
    return "false"
好的,您的代码返回字符串false,但需要一个布尔值false。您需要修复的一个更令人担忧的错误是,只会检查左侧路径。您需要更改内部while循环的逻辑

例如,您会注意到,对于以下测试用例:

[1,2,3]
5
[1, 2, 3]
4
假设修复了返回类型错误,代码将返回false,即使正确的路径和为4。这是因为只有左边的路径1、2被遍历。

|请仔细阅读您的代码,并将问题缩小为一个问题。然后问一个具体的问题。为什么我的代码会这样做呢?请重新获取,阅读和。欢迎来到堆栈溢出!