二叉樹的層次遍歷

2021-08-29 16:27:00 字數 876 閱讀 9498

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

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

3

/ \9 20

/ \

15 7

返回其層次遍歷結果:

[

[3],

[9,20],

[15,7]

]

思路:使用佇列,把每一層的節點給儲存起來,再逐個讀出,該層節點的值儲存在list中,而該層節點的左右子節點繼續儲存在佇列中(確保左右子節點不為空再儲存),直到隊列為空。

/**

* definition for a binary tree node.

* public class treenode

* }*/class

solution

else

while

(!queue.

isempty()

)if(node.right!=null)

}

list.

add(list1);}

return list;

}}

leetcode 高分解法,使用遞迴完成。

class

solution

public

void

addlevel

(list

> list,

int level, treenode node)

}

層次遍歷二叉樹

問題 假定根節點位於第0層 1.層次遍歷二叉樹 每層換行分開 2.層次遍歷二叉樹指定的某層 本文 例如 上圖中1.123 4567 82.第三層 78可以看出得出第二問的解,第一問迎刃而解了,所以從問題二下手 1.層次遍歷二叉樹指定的某層 可以得出這樣的乙個結論 遍歷二叉樹的第k層,相當於遍歷二叉樹...

二叉樹層次遍歷

題目描述 從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。思路 二叉樹的層次遍歷,利用棧的先進後出的特性。struct treenode class solution res.push back temp while m.empty m中是從左往右入棧,這裡把它反過來,s中是從右往左...

二叉樹層次遍歷

層次遍歷二叉樹,每一次儲存在list中,結果按從葉子層到根,從左到右的順序儲存 一 class solution return lists 相當於在先序的基礎上改進,level是每個node所在的層次。如果lists大小和level相等,說明開始新一層的儲存。如果不等,則直接把值存入相應層次的lis...