LeetCode Populating Next Right Pointers in Each Node(dfs)

問題:給出一個滿二叉查找樹,將結點與其右邊的結點相連

思路:

一種方式是自頂向下,基於當前結點和右邊結點來作遍歷,對於根結點,右邊結點爲null,不管是否有右邊結點,在遞歸過程中都需要將當前結點的next設置爲右結點。在作下一層處理時,以當前結點的左孩子結點、右孩子結點遞歸。對於右邊結點不爲空的,則以當前結點的右孩子,右邊結點的左孩子結點作爲一次遞歸以及用右邊結點的左孩子、右孩子作爲另外一次遞歸。

另外一種方式是從底向上,從右向左的方式 。在以右孩子結點往下遞歸時,得到右子樹的結點,然後以當前遍歷深度的左孩子,及右子樹遞歸的結果作爲左孩子的右結點遞歸。在遞歸過程中,如果右結點不爲空,需要更新當前結點的next,同時更新next

具體代碼參考:

https://github.com/wuli2496/OJ/tree/master/LeetCode/Populating%20Next%20Right%20Pointers%20in%20Each%20Node

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章