Leetcode(樹)二叉樹的層次遍歷 c

2021-09-02 14:07:21 字數 934 閱讀 9605

給定乙個二叉樹,返回其按層次遍歷的節點值。 (即逐層地,從左到右訪問所有節點)。

例如:給定二叉樹: [3,9,20,null,null,15,7],3/

9 20

/ 15 7

返回其層次遍歷結果:

[[3],

[9,20],

[15,7]

]解題思路:借助佇列結構,先將根節點入隊,然後出隊,訪問該結點,如果它有左子樹,則將左子樹根節點入隊;若果它有右子樹,則將右子樹根結點入隊。然後出隊,訪問該結點,如此反覆,直至隊列為空。

因為本題的輸出是乙個vector,每一層作為乙個vector元素,因此需要額外再加乙個佇列,依次儲存每一層的結點。

/**

* definition for a binary tree node.

* struct treenode

* };

*//*

queue 的基本操作有:

入隊,如例:q.push(x); 將x 接到佇列的末端。

出隊,如例:q.pop(); 彈出佇列的第乙個元素,注意,並不會返回被彈出元素的值。

訪問隊首元素,如例:q.front(),即最早被壓入佇列的元素。

訪問隊尾元素,如例:q.back(),即最後被壓入佇列的元素。

判斷佇列空,如例:q.empty(),當佇列空時,返回true。

訪問佇列中的元素個數,如例:q.size()

*/class

solution

vec_level.

push_back

(vec)

; que = que_next;

//將下一層的結點佇列賦予 迴圈用的佇列,開始新的迴圈。

}return vec_level;}}

;

leetcode 二叉樹 二叉樹的層次遍歷

給定乙個二叉樹,返回其按層次遍歷的節點值。即逐層地,從左到右訪問所有節點 例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回其層次遍歷結果 3 9,20 15,7 方法一 遞迴 思路 比較訪問節點所在層次level和當前最高層次len levels 判定是否需...

Leetcode 層次遍歷二叉樹

給定乙個二叉樹,返回其節點值自底向上的層次遍歷。即按從葉子節點所在層到根節點所在的層,逐層從左向右遍歷 例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回其自底向上的層次遍歷為 15,7 9,20 3 掌握層次遍歷模板 使用佇列 雙迴圈,可解決層次遍歷 求最大深...

LeetCode 二叉樹層次遍歷

1.給定乙個二叉樹,返回其按層次遍歷的節點值。即逐層地,從左到右訪問所有節點 例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回其層次遍歷結果 3 9,20 15,7 definition for a binary tree node.struct treen...