我想编写一个函数,它返回列表中树中的所有元素。我不允许使用全局变量。这是我尝试过的:
def traverse(current node):
if no left child and no right child:
return current nodes data
else:
if both left child and right child exist:
return [current nodes data,left_child.traverse(),right_child._traverse()]
elif no left child: return [current node's data,right_child.traverse()]
elif no right child: return [current node's data,left_child.traverse()]
我们用这个例子:(根是2,左孩子是1,右孩子是3,右孩子的右孩子是4)
2
1 3
4
在这棵树上调用 traverse 返回:
[2, 1, [3, 4]]
所以唯一的问题是我们不能把它全部放在一个列表中。
编辑:这里有一些可以调用的节点函数:
node.data
, node.left
,node.right