給定乙個二叉樹,返回其節點值自底向上的層次遍歷。 (即按從葉子節點所在層到根節點所在的層,逐層從左向右遍歷)
例如:給定二叉樹[3,9,20,null,null,15,7]
,
3
/ \ 9
20/ \
157
返回其自底向上的層次遍歷為:
[[15
,7],
[9,20
],[3
]]
這個遍歷與普通的層次遍歷差別在與需要返回的值的順序是相反的,我的思路是先得到最大深度,然後遞減去賦值.
public list
>
levelorderbottom
(treenode root)
levelorderbottom
(root, depth, result)
;return result;
}private
intmaxdepth
(treenode node)
int leftdepth =
maxdepth
(node.left)
;int rightdepth =
maxdepth
(node.right)
;return leftdepth >= rightdepth ? leftdepth +
1: rightdepth +1;
}private
void
levelorderbottom
(treenode node,
int depth, list
> list)
list.
get(depth-1)
.add
(node.val)
;levelorderbottom
(node.left,depth-
1,list)
;levelorderbottom
(node.right,depth-
1,list)
;}
107 二叉樹的層次遍歷 ii
給定乙個二叉樹,返回其節點值自底向上的層次遍歷。即按從葉子節點所在層到根節點所在的層,逐層從左向右遍歷 例如 給定二叉樹 3,9,20,null,null,15,7 判斷當前節點的層數 是否大於 result中的列表數 if layer len result 若是 則在result的前部增加乙個列表...
107 二叉樹的層次遍歷 II
給定乙個二叉樹,返回其節點值自底向上的層次遍歷。即按從葉子節點所在層到根節點所在的層,逐層從左向右遍歷 例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回其自底向上的層次遍歷為 15,7 9,20 3 解法一 definition for a binary tr...
107二叉樹的層次遍歷II
給定乙個二叉樹,返回其節點值自底向上的層次遍歷。即按從葉子節點所在層到根節點所在的層,逐層從左向右遍歷 還是層次遍歷的寫法,遞迴非遞迴都可。最後用collections.reverse 翻轉list,或者在建立鍊錶時用linkedlist,用addfirst的api,每次都在首部增加list。pub...