我正在创建Python代码,以识别二叉树的最大(节点和)路径。在遍历树时,我想将路径方向(左侧为“l”,右侧为“r”)附加到一个列表中,以便稍后在代码中调用。
到目前为止,我已经成功获取了最大路径(节点和)和第一个路径方向,但没有完整路径。
我感觉我快要完成了,只需要指点正确的方向。
def sum_max_path(root):
if not root:
return
if root.left is None:
l_sum = 0
else:
l_sum = sum_max_path(root.left)
if root.right is None:
r_sum = 0
else:
r_sum = sum_max_path(root.right)
if l_sum > r_sum:
root.list.append("l")
return root.value + l_sum
elif l_sum < r_sum:
root.list.append("r")
return root.value + r_sum
else:
root.list.append("l")
return root.value + l_sum
return root.value + max(l_sum, r_sum)
return sum_max_path(root), root.list
这的输出结果是:
The total value in this path is: 8
The largest value path is: ['l']
我希望的输出结果是:
The largest value path is ['l', 'r', 'l']
(显然这取决于基于生成树的路径长度有多长)。
path
被传递了。 - georg