2023.6.14
递归加回溯,这里mark一下,这个回溯的过程想得不是很清楚,隐约是那么个感觉
class Solution:
def traversal(self, cur, path, result):
path.append(cur.val) # 中
if not cur.left and not cur.right: # 到达叶子节点
sPath = '->'.join(map(str, path))
result.append(sPath)
return
if cur.left: # 左
self.traversal(cur.left, path, result)
path.pop() # 回溯
if cur.right: # 右
self.traversal(cur.right, path, result)
path.pop() # 回溯
def binaryTreePaths(self, root):
result = []
path = []
if not root:
return result
self.traversal(root, path, result)
return result
该文章探讨了如何使用递归和回溯方法遍历二叉树并找出所有从根节点到叶子节点的路径。在类`Solution`中,定义了一个`traversal`方法,它通过添加当前节点值到路径,然后分别探索左子树和右子树来实现。当到达叶子节点时,将路径加入结果列表。回溯操作通过移除路径中的最后一个元素来实现。
1136

被折叠的 条评论
为什么被折叠?



