二叉樹的遍歷是指從根節點出發,按照某種次序依次訪問二叉樹中所有節點,使得每個節點僅被訪問一次
前序遍歷
若二叉樹為空,則空操作返回,否則先訪問根節點,然後前序遍歷左子樹,再前序遍歷右子樹。
結果是:abdghceif
中序遍歷:
若樹為空,則空操作返回,否則從根節點開始(注意並不是先訪問根節點),中序遍歷根節點的左子樹,然後訪問根節點,最後中序遍歷右子樹
結果是:gdhbaeicf
後序遍歷:
若樹為空,則空操作返回,否則從左到右先葉子後節點的方式遍歷訪問左右子樹,最後是訪問根節點。
結果是:ghdbiefca
層序遍歷
若樹為空,則空操作返回,否則從樹的第一層,也就是根節點開始訪問,從上而下逐層遍歷,同一層中,按從左到右對節點逐個訪問。
結果是:abcdefghi
有時候會碰到一種題,推導遍歷結果
例如:已知一棵二叉樹前序遍歷為abcdef,中序遍歷為cbaedf,後序遍歷是多少?
解析:1.前序遍歷為abcdef,所以根節點為a,再由中序遍歷cbaedf,可推導cb為左子樹,edf為右子樹
2.然後前序先列印b然後c,所以b應該是a的左孩子,c不確定,但中序c在b之前,則推斷出c是b的左孩子
3.前序為def,所以d是a的右孩子,再加上中序edf,可以確定,e是d的左孩子,f是d的右孩子
結果他的後序遍歷就很明顯了,cbefda
拓展一下,如果要確定一顆二叉樹,前序後序是不能直接確定的,必須要知道中序。
二叉樹的前中後遍歷及層序遍歷
概念 二叉樹的遍歷是指從根結點出發,按照某種次序依次訪問二叉樹中的所有結點,使得每個結點被訪問一次且僅被訪問一次。樹遍歷的本質是將非線性結構線性化 深度優先遍歷 二叉樹的深度優先遍歷,分為如下三種 先左後右 廣度優先遍歷 與深度優先遍歷不同的是,廣度優先遍歷是先搜尋所有兄弟和堂兄弟結點再搜尋子孫結點...
二叉樹的前中後層遍歷
package com.data.tree public class bitree package com.data.tree classname treetest description todo author payphone date 2018年12月24日 下午1 44 07 version...
二叉樹層序遍歷 求二叉樹的層序遍歷
給定乙個二叉樹,返回該二叉樹層序遍歷的結果,從左到右,一層一層地遍歷 例如 給定的二叉樹是,該二叉樹層序遍歷的結果是 3 9,20 15,7 示例1 輸入 返回值 1 2 示例2輸入 返回值 1 2,3 4,5 解題思路 重點是如何把在一層的節點放到一起,設定乙個引數專門放一層的節點 class t...