天天看點

二叉樹的前中後序周遊

秋招記錄

二叉樹的周遊是筆試常見的題目了,記錄一下一勞永逸

對一棵二叉樹進行周遊,我們可以采取3種順序進行周遊,分别是前序周遊、中序周遊和後序周遊。

這三種方式是以通路父節點的順序來進行命名的。

假設父節點是N,左節點是L,右節點是R,那麼對應的通路周遊順序如下:

前序周遊:中左右 N>L>R

中序周遊:左中右 L>N>R

後序周遊:左右中 L>R>N

總結:

1.先左後右是一定的,父節點的位置決定了前中後

2.利用前序周遊可以得到根節點,就是第一個

3.利用後序周遊可以得到根節點,最後一個

4.确認了根節點,利用中序周遊可以得到左子樹和右子樹

5.對左子樹和右子樹分别做前面3點的分析和拆分,相當于做遞歸,我們就可以重建出完整的二叉樹

例題:前序周遊的順序是: CABGHEDF 中序周遊的順序是: GHBACDEF

第一步:根節點是C 左包括 GHBA 右包括 DEF

二叉樹的前中後序周遊

第二步:把左子樹當做一個完整的二叉樹再看,A是左子樹的根節點,而GHB都在A的左邊,同理右子樹的根節點是E,左右分别是D和F

二叉樹的前中後序周遊

第三步:根據前兩步的經驗,對于每個小子樹都采用同樣的方式,最後得到完整的二叉樹:

二叉樹的前中後序周遊

關鍵:

**記住前中後序所對應的節點周遊順序!

前中後是指N的位置,左右不變!**

繼續閱讀