二叉樹遍歷方法
1、前序遍歷
說明:若二叉樹爲空,則空操作返回,否則先訪問根結點,然後前序遍歷左子樹,再前序遍歷右子樹。
簡單來講,一句話:根結點排最先,同級先左後右。
- 示例1:
解釋:根結點是1,左孩子是2,右孩子是3,那麼先根,同級先左後右就是 1-> 2-> 3.
- 示例2:
解釋:根結點是1,左右孩子分別是2,3;第二層根結點是2和3: 2的左右孩子分別是4,5;3的左右孩子分別是6和7;第三層是葉子結點,沒有孩子。
① 將245看作A,367看作B,那麼這個樹就變形成爲下圖:
這個樹的遍歷結果爲:1 -> A ->B
② A爲:
遍歷順序爲:2 -> 4 -> 5
③ B爲:
遍歷順序爲: 3 -> 6 -> 7
綜上所述:那麼前序遍歷時,1-> 2-> 4 -> 5 -> 3 -> 6 -> 7
- 示例3:
前序遍歷結果:A-> B -> D -> G -> H -> C -> E -> I -> F
2、中序遍歷
規則:若樹爲空,則空操作返回,否則從根結點開始(注意不是先訪問根結點),中序遍歷根結點的左子樹,然後是訪問根結點,最後中序遍歷右子樹。
簡單來講,一句話:先左後根最後右
- 示例1:
解釋:根結點是1,左孩子是2,右孩子是3,那麼先左,後根最後右就是 2-> 1-> 3. - 示例2:
解釋:根結點是1,左右孩子分別是2,3;第二層根結點是2和3: 2的左右孩子分別是4,5;3的左右孩子分別是6和7;第三層是葉子結點 ,沒有孩子。
① 將245看作A,367看作B,那麼這個樹就變形成爲下圖:
這個樹的遍歷結果爲:A -> 1 -> B
② A爲:
遍歷順序爲:4 -> 2 -> 5
③ B爲:
遍歷順序爲:6 -> 3-> 7
綜上所述,中序遍歷爲: 4 -> 2 -> 5 -> 1 -> 6 -> 3 -> 7
-
示例3:
遍歷順序爲: G -> D -> H -> B -> A -> E -> I -> C -> F
3、後序遍歷
說明: 規則是若樹爲空,則空操作返回,否則從左到右先葉子後結點的方式遍歷訪問左右子樹,最後是訪問根結點。
簡單來講,一句話: 先左後右最後根
- 示例1:
解釋:根結點是1,左孩子是2,右孩子是3,那麼先左後右最後根就是 2 -> 3-> 1. - 示例2:
解釋:根結點是1,左右孩子分別是2,3;第二層根結點是2和3: 2的左右孩子分別是4,5;3的左右孩子分別是6和7;第三層是葉子結點,沒有孩子。
① 將245看作A,367看作B,那麼這個樹就變形成爲下圖:
這個樹的遍歷結果爲:A -> B -> 1
② A爲:
遍歷順序爲:4 -> 5 -> 2
③ B爲:
遍歷順序爲: 6 -> 7 -> 3
綜上所述,後序遍歷爲: 4 -> 5 -> 2 -> 6 -> 7 -> 3 -> 1
- 示例3:
遍歷順序爲: G -> H -> D -> B -> I -> E -> F -> C -> A