1、知道二叉樹的先序/後序遍歷和中序遍歷(中序必需要知道,否則沒法判斷),要快速判斷後序/先序遍歷,首先要了解二叉樹的遍歷規律3d
2、二叉樹遍歷規律blog
一、三種遍歷都有一個規律,就是:逆時針沿着二叉樹外緣移動,即方向相同,以下圖1:二叉樹
圖1遍歷
二、方法
三、 不一樣的是他們出發點不一樣,下面說明他們的出發點和遍歷順序序列im
3、二叉樹三種遍歷d3
一、先序遍歷img
先序遍歷先從二叉樹的根開始,而後到左子樹,再到右子樹,,如圖2移動
圖2co
先序遍歷序列是ABDCEF,重點是記住第一個字母「A」是根,出發點是根「A」
二、中序遍歷
中序遍歷先從左子樹開始,而後到根,再到右子樹,如圖3
圖3
即中序遍歷序列是DBAECF,重點是記住中序遍歷的根位置,是在序列的第一個字母和最後一個字母之間,出發點是左子樹的最下邊的左邊的開始,(爲何到A以後直接跳過C呢?由於C也是E和F的根,因此按照中序遍歷規律,先到E再到C再到F)
三、後序遍歷
後序遍歷先從左子樹開始,而後到右子樹,再到根,如圖4
圖4
即後序遍歷序列式DBECFCA,重點是知道了根是最後面一個字母「A」, 出發點是左子樹的最下邊左邊。
4、道了先序遍歷和中序遍歷,或者是後序遍歷和中序遍歷,判斷出後序遍歷,或者是先序遍歷的方法
好比知道先序遍歷是ABDCEF,中序遍歷是DBAECF,那麼能夠從先序遍歷知道這個二叉樹的根是A,(若是是選擇題,能夠快速判斷出後序遍歷的序列最後面一個字母確定是A,而後選擇最後面有A的選項)
從中序遍歷看出A把DB和ECF隔開,即DB \A \ECF,所以能夠知道DB屬於左子樹,ECF屬於右子樹
若是是填空題就要寫出該二叉樹的圖,先寫出左子樹,從中序遍歷知道DB是右子樹,把DB當作一個總體,則從先序遍歷判斷能夠肯定B是D的根,這樣就肯定出左子樹的圖是
把ECF右子樹當作一個總體,則從先序遍歷能夠知道C是E和F的根,肯定出右子樹是
而後把兩個子樹連在根「A」的下面,再根據後序遍歷規律讀出序列就能夠了