leetcode 102 二叉樹的層次遍歷

2021-10-02 09:27:11 字數 791 閱讀 2013

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

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

3/ \

9  20

/ \15  7

返回其層次遍歷結果:

[[3],

[9,20],

[15,7]

]解析:本題是基礎的二叉樹層次遍歷。唯一的不同點在於本題並不是按照順序輸出即可,而是需要根據不同的層次分組輸出,因此需要做一些額外的處理

二叉樹層次遍歷的非遞迴實現一般使用佇列queue,為了實現分組,在每一層遍歷之後額外插入乙個空節點,當迴圈處理到空節點時,進行一次分組處理

遞迴實現中,可以為每一次遞迴呼叫額外輸入乙個數用來確定其層次,然後插入其對應的層次中即可

//非遞迴實現

class

solution

else

}return res;}}

;//遞迴實現

class

solution

void

helper

(treenode* cur,

int p));

} res[p]

.push_back

(cur-

>val)

;helper

(cur-

>left,p+1)

;helper

(cur-

>right,p+1)

;}}}

;

LeetCode 102 二叉樹的遍歷

給定乙個二叉樹,返回其按層次遍歷的節點值。即逐層地,從左到右訪問所有節點 例如 給定二叉樹 返回其層次遍歷結果 如下 definition for a binary tree node.public class treenode public class solution list res new ...

LeetCode 102 二叉樹的層次遍歷

題目鏈結 題目描述 給定乙個二叉樹,返回其按層次遍歷的節點值。即逐層地,從左到右訪問所有節點 例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回其層次遍歷結果 3 9,20 15,7 解決方法 廣度優先 層次 遍歷,使用佇列實現 具體思路 在訪問了乙個節點之後...

LeetCode 102 二叉樹的層次遍歷

給定乙個二叉樹,返回其按層次遍歷的節點值。即逐層地,從左到右訪問所有節點 例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回其層次遍歷結果 3 9,20 15,7 此題需要將各個層的節點分別儲存到不同的陣列中。所以在while迴圈中,加了乙個for迴圈,迴圈次數...