我有这个代码:
def recursionTravel(node, returnArr = []):
if node:
returnArr.append(node.data)
if node.left: returnArr.append(recursionTravel(node.left, returnArr))
if node.right: returnArr.append(recursionTravel(node.right, returnArr))
return node.data
# Pre-order traversal
def pre_order(node):
output = []
if node:
output.append(node.data)
if node.left: output.append(recursionTravel(node.left))
if node.right: output.append(recursionTravel(node.right))
return output
二叉树由节点组成:
[5, 10, 2, 'leaf']
输出应该是相同的:[5, 10, 2, 'leaf']
问题:返回结果中缺少最后一个元素。返回值:
[5, 10, 2]
只需更改 recusiveTravel 的最后一行即可。
def RecusiveTravel(node, returnArr[]):
if node:
returnArr.append(node.data)
if node.left: returnArr.append(recursionTravel(node.left, returnArr))
if node.right: returnArr.append(recursionTravel(node.right, returnArr))
return returnArr
无需预购功能。只需从递归函数中调用它即可。应该可以。