def dfs(root):
res = []
if root == None:
return res
res.append(root.val)
dfs(root.left)
dfs(root.right)
return res
Input
root =
[1,null,2,3]
Output
[]
我是用递归解法 请问问题出在哪里?
该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
你的代码递归逻辑本身没有问题,但在 dfs(root.left)
和 dfs(root.right)
这两行代码中,返回的遍历结果没有被保存在 res
中,这就导致最终的结果是一个空列表 []。因此,你需要将这两行代码修改为:
res.extend(dfs(root.left))
res.extend(dfs(root.right))
这样,在递归遍历左子树和右子树时,返回的结果会被添加到 res
列表中。修改后的完整代码如下:
class Solution:
def preorderTraversal(self, root: TreeNode) -> List[int]:
def dfs(root):
res = []
if root == None:
return res
res.append(root.val)
res.extend(dfs(root.left))
res.extend(dfs(root.right))
return res
return dfs(root)
希望能帮助到你。
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢