リスト内のツリー内のすべての要素を返す関数を書きたいと思います。ただし、グローバル変数の使用は許可されていません。これが私が試したことです:
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]]
したがって、唯一の問題は、すべてを 1 つのリストに収めることができないことです。
編集: 呼び出すことができるノード関数の一部を以下に示します:
node.data
, node.left
,node.right