LeetCode102 二叉樹的層次遍歷

2021-09-17 08:29:06 字數 963 閱讀 6937

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

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

3

/ \9 20

/ \

15 7

返回其層次遍歷結果:

[

[3],

[9,20],

[15,7]

]

題解:這題就是傳統的層次遍歷,需要注意的一點就是每層到數字到儲存到乙個單獨的list裡面。

層次遍歷最簡單的方法,就是使用乙個佇列來實現,現在只是要多乙個標記位判斷是不是到了該層的末尾。

tips:如果上一層結束結點的子節點的子樹不都為空,那麼下一層的結束結點一定是子結點;如果上一層結束結點的子節點的子            樹都為空,則下一層的結束結點是當前佇列的最後乙個結點。

附上程式:

public list> levelorder(treenode root) 

list> result = new arraylist<>(); //結果

linkedlistqueue = new linkedlist<>(); //佇列

queue.add(root);

listeachlevel = new arraylist<>(); //儲存每層的結點數值

treenode flag = root; //標誌位,判斷當前結點是否為該層次的最後乙個結點

while (!queue.isempty()) else if (temp.right == null)else

}else

if (temp.left != null)

if (temp.right != null)

}return result;

}

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