leetcode遇到了好多關于樹的題,因為數(shù)據(jù)結構基礎不牢的原因,基本都是參考答案重寫一遍當是加深印象,一刷大部分都是這樣,還是太水了,希望二刷能好點。
現(xiàn)在寫到關于遍歷二叉樹的問題了,復習下二叉樹遍歷,好寫代碼
leetcode傳送門:
preorder
inorder
my gist 代碼答案傳送門(go):
preorder
inorder
前序遍歷(Pre-Order):根節(jié)點->左子樹->右子樹(NLR)
中序遍歷(In-Order):左子樹->根節(jié)點->右子樹(LNR)
后序遍歷(Post-Order):左子樹->右子樹->根節(jié)點(LRN)
??

舉個例子,比如中序的時候,從以d為root的最下面子樹開始,沒有左子樹,所以d,e,之后遍歷以b為root的子樹,應該是b,f,但f也是root,所以這時候不到f,而是g,之后才f

中序,左中右的時候,如果該右節(jié)點了,右節(jié)點有子節(jié)點,先去子節(jié)點,但是前序就是,該誰就先寫上,之后再看他的子節(jié)點