二叉樹的層序遍歷

2021-10-07 17:01:25 字數 712 閱讀 5049

題目描述:給你乙個二叉樹,請你返回其按層序遍歷得到的節點值。 (即逐層地,從左到右訪問所有節點)。

解題思路:

將根節點放入佇列中,在出佇列後判斷根節點是否存在左右孩子,如果存在就依次入佇列,根節點出佇列就相當於第一層遍歷完成

第一層節點遍歷完成後,第二次所有的節點都已經全部入佇列

必須一次性將該層的所有節點遍歷完,下一次所有的節點入佇列

int levesize = q.size();  // 每一層節點的個數

for(int i = 0; i< levesize; i++)

取隊頭元素

遍歷該元素

如果該元素有左孩子,則入佇列

如果該元素有右孩子,則入佇列

**如下:

class solution 

// 樹不空

queueq;

q.push(root);

while(!q.empty())

ret.push_back(v);

}return ret;}};

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

給定乙個二叉樹,返回該二叉樹層序遍歷的結果,從左到右,一層一層地遍歷 例如 給定的二叉樹是,該二叉樹層序遍歷的結果是 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...