二叉樹的層序遍歷

2021-08-04 04:25:03 字數 852 閱讀 1464

所謂的層序遍歷,就是按照從上到下,從左到右的順序遍歷該二叉樹。所以按層列印的順序就應該先列印根節點,然後依次為根節點的左孩子,右孩子。根節點的左孩子的左孩子,根節點的左孩子的右孩子……假設有如圖所示的二叉樹。

由圖可知,先列印根節點8,在列印節點8的時候,有必要先把節點6和10兩個節點儲存在乙個容器中。按照從左到右遍歷的順序,我們應先取出節點6,列印6之後應該把它的左右節點5和7依次放入容器中。此時容器中有三個節點10,5,7。接下來取出節點10,因為節點10比節點5和7早放入容器,此時又比這兩個節點早取出,所以該容器應該符合先進先出的特性,即為乙個佇列(使用deque(雙端佇列),兩個都可以進出資料)。由於節點5,7,9,11沒有子節點,故只需要依次出佇列列印即可。

二叉樹層序遍歷 求二叉樹的層序遍歷

給定乙個二叉樹,返回該二叉樹層序遍歷的結果,從左到右,一層一層地遍歷 例如 給定的二叉樹是,該二叉樹層序遍歷的結果是 3 9,20 15,7 示例1 輸入 返回值 1 2 示例2輸入 返回值 1 2,3 4,5 解題思路 重點是如何把在一層的節點放到一起,設定乙個引數專門放一層的節點 class t...

層序遍歷二叉樹

要求 設計乙個演算法層序遍歷二叉樹 同一層從左到右訪問 我寫了乙個演算法 用乙個佇列儲存被訪問的當前節點的左右孩子以實現層序遍歷。status hierarchybitree bitree t,status visit telemtype e destroyqueue q 釋放佇列空間 return...

二叉樹層序遍歷

主要流程 確定root非空 根指標進佇列 佇列非空就一直迴圈 依次掃瞄目前佇列中所有元素 新增的不算 從佇列取出第一元素 將值放入結果vector中 判斷左右子節點非空,並依次入隊 將本次結果放入二維陣列中 如果需要按層逆序輸出的話,在這裡將二維結果倒排一下 返回二維結果 vector levelo...