給定乙個二叉樹,返回其按層次遍歷的節點值。 (即逐層地,從左到右訪問所有節點)。
例如:給定二叉樹: [3,9,20,null,null,15,7],3/
9 20
/ 15 7
返回其層次遍歷結果:
[[3],
[9,20],
[15,7]
]解題思路:借助佇列結構,先將根節點入隊,然後出隊,訪問該結點,如果它有左子樹,則將左子樹根節點入隊;若果它有右子樹,則將右子樹根結點入隊。然後出隊,訪問該結點,如此反覆,直至隊列為空。
因為本題的輸出是乙個vector,每一層作為乙個vector元素,因此需要額外再加乙個佇列,依次儲存每一層的結點。
/**
* definition for a binary tree node.
* struct treenode
* };
*//*
queue 的基本操作有:
入隊,如例:q.push(x); 將x 接到佇列的末端。
出隊,如例:q.pop(); 彈出佇列的第乙個元素,注意,並不會返回被彈出元素的值。
訪問隊首元素,如例:q.front(),即最早被壓入佇列的元素。
訪問隊尾元素,如例:q.back(),即最後被壓入佇列的元素。
判斷佇列空,如例:q.empty(),當佇列空時,返回true。
訪問佇列中的元素個數,如例:q.size()
*/class
solution
vec_level.
push_back
(vec)
; que = que_next;
//將下一層的結點佇列賦予 迴圈用的佇列,開始新的迴圈。
}return vec_level;}}
;
leetcode 二叉樹 二叉樹的層次遍歷
給定乙個二叉樹,返回其按層次遍歷的節點值。即逐層地,從左到右訪問所有節點 例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回其層次遍歷結果 3 9,20 15,7 方法一 遞迴 思路 比較訪問節點所在層次level和當前最高層次len levels 判定是否需...
Leetcode 層次遍歷二叉樹
給定乙個二叉樹,返回其節點值自底向上的層次遍歷。即按從葉子節點所在層到根節點所在的層,逐層從左向右遍歷 例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回其自底向上的層次遍歷為 15,7 9,20 3 掌握層次遍歷模板 使用佇列 雙迴圈,可解決層次遍歷 求最大深...
LeetCode 二叉樹層次遍歷
1.給定乙個二叉樹,返回其按層次遍歷的節點值。即逐層地,從左到右訪問所有節點 例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回其層次遍歷結果 3 9,20 15,7 definition for a binary tree node.struct treen...