的問題是,給定一個二叉樹,每個節點有數據的四件:left
,right
,data
和一個空指針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
設置爲左邊的孩子。如何調整它以獲得正確的結果?也可以迭代地使用堆棧,可能是?
不完全是蟒蛇,但算法中的作品( +1) – inspectorG4dget
我只是評論說,它不是用python編寫的解決方案(算法是正確的,這就是爲什麼我給你+1)。儘管如此,這可能是家庭作業,所以我完全支持用非目標語言表達算法 – inspectorG4dget
我希望我沒有得罪你。我從來沒有想過你聽起來粗魯或什麼。我比其他任何東西更沉迷 – inspectorG4dget