【发布时间】:2021-08-06 11:08:31
【问题描述】:
我有一些代码可以递归地遍历二叉树。
def IN_DFS(node, result=None):
if result is None:
result = []
if not node:
return result
Solution.IN_DFS(node.left, result)
result.append(node.val)
Solution.IN_DFS(node.right, result)
return result
我需要一些帮助来了解正在发生的事情。我了解递归,并且知道如何按顺序迭代地遍历二叉树,但似乎看不到这个递归解决方案发生了什么。
所以如果'node'不是None,我们在node.left上调用递归函数直到我们到达一个引导节点,在这种情况下node.left是None,我们移动到下一行'result.append(节点.val)'? - 对吗?
然后在'node.right'上调用递归函数?
假设我们到达第一个node.left叶节点,将其值添加到'result',然后返回到其父节点,将其值添加到'result',然后检查其右子节点?
我不认为上述是正确的 - 任何人都可以帮忙吗?谢谢
【问题讨论】: