1. 程式人生 > >二叉樹中如何根據已知的兩種遍歷方法,求出第三種遍歷的結果

二叉樹中如何根據已知的兩種遍歷方法,求出第三種遍歷的結果


此題的答案是B。詳細解析如下:

知道先序是根->左->右,中序是左->根->右,後序是左->右->根,但是以前一直沒整明白怎麼根據已知兩個序遍歷求第三種遍歷(前提是一定要知道中序遍歷),今天做這個題的時候忽然腦袋開竅了。

最重要的一點就是:找到根->找到左右子樹
一直重複這個操作,直到最後一個子節點。
先序遍歷的結果是ABDEFC,根據先序得到根節點是A.

中序遍歷的結果是DBFEAC,根據中序得到A之前的節點都是左子樹,A之後的節點都是右子樹,所以可以得出:


接著分析左子樹的情況,先序排列是BDEF,根節點是B,中序排列是DBFE,B之前的節點是它的左子樹,B之後的節點是它的右子樹,可以得出:


最後分析右子樹的情況,先序排列是EF,中序排列是FE,所以E是根節點,F是左節點。

最後就是:


得到後序遍歷:DFEBCA