leetcode 102 二叉樹的層次遍歷

2021-10-03 01:49:00 字數 1119 閱讀 1470

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

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

3/ \

9 20

/ \15 7

返回其層次遍歷結果:

[

[3],

[9,20],

[15,7]

]

方法一(非遞迴)

二叉樹的層次遍歷即二叉樹的廣度遍歷,可以使用臨時資料結構佇列進行儲存每一層的節點,同時輸出的時候將其非空的左右子節點假如的到佇列中。當然,這裡需要控制輸出的次數。

實現如下:

vectorint>>

levelorder

(treenode* root)

queue> q;

q.push

(root)

;while

(!q.

empty()

)if(node->right)}}

res.

push_back

(tmp)

; tmp.

erase

(tmp.

begin()

, tmp.

end())

;}return res;

}

方法二:(遞迴)

vectorint>>

levelorder

(treenode* root)

void

pre(treenode *root,

int depth, vectorint>>

&ans));

ans[depth]

.push_back

(root->val)

;pre

(root->left, depth +

1, ans)

;pre

(root->right, depth +

1, ans)

;}

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迴圈,迴圈次數...