題目:給定乙個二叉樹,返回其按層次遍歷的節點值。 (即逐層地,從左到右訪問所有節點)。
例子:給定二叉樹: [3,9,20,null,null,15,7],
3/ \
9 20
/ \15 7
返回其層次遍歷結果:
[[3],
[9,20],
[15,7]
]
題目分析
層次遍歷
按順序儲存每個結點 -->佇列(先進先出)!
思路分析 變數
作用queuenow
儲存現在遍歷的層的所有結點
queuenext
儲存要遍歷的下一層的所有結點
treenode* temp
當前遍歷的結點
vector layer
當前層的結點資訊
過程:
設定兩個佇列now和next
now 初始化為根結點
當 now 或 next 為非空
now非空
遍歷now
now中結點的孩子結點 ==> 儲存入next中
now中的結點儲存入 layer
now如果為空
遍歷next (即下一層)
next中結點的孩子結點 ==> 儲存入now中
next中的結點儲存入 layer
layer儲存入ans
class solution ;
queuenow};
queuenext;
vector> ans;
while (!now.empty()||!next.empty())
}else
}ans.push_back(layer);
}return 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迴圈,迴圈次數...