left
問題は、各ノードに、right
、data
および空のポインタの 4 つのデータがあるバイナリ ツリーが与えられた場合、各ノードparent
のポインタがその親を指すようにツリーを更新する必要があることですparent
(ルートの親ポインタは自然に指すようになります)。 NULL 値に)。どうすればいいですか?次のようなポストオーダートラバーサルを試しました:
last = None
def mypostorder(root):
if root:
mypostorder(root.left)
mypostorder(root.right)
if last:
last.parent = root
last = root
しかし、明らかにそれは機能していません.左の子のparent
ポインタを更新した後、それを として設定する理由を知ってlast
います. parent
. 正しい結果を得るためにそれを微調整する方法は?スタックを使用して、繰り返し行うことも可能ですか?