i******t 发帖数: 22541 | | d**********x 发帖数: 4083 | 2 要么在一棵子树里,要么是两侧最大深度的加和
【在 i******t 的大作中提到】 : ?
| x****7 发帖数: 86 | | n*******w 发帖数: 687 | 4 是从root出发吧
helper_list存当前level的nodes
new_list存下一level的nodes
最后结果存在path_stack里
因为返回时需要找path上的node,所以需要一直保存本层所有nodes一直到下一层返回。
longestPath(helper_list, path_stack):
if len(helper_list) == 0:
return
new_list = []
for node in helper_list:
new_list.append(node.left) if node.left is not None
new_list.append(node.right) if node.right is not None
if len(new_list) == 0:
path_stack.append[helper_list[0]] //假设只返回最左边的最长路径
return helper_list[0]
ret_node = longestPath(new_list, path_stack)
for node in helper_list: //找返回的ret_node的parent node
if node.left == ret_node or node.right == ret_node :
path_stack.append(node)
return node
【在 i******t 的大作中提到】 : ?
|
|