您的位置:首页 > Web前端 > JavaScript

[LeetCode][JavaScript]Binary Tree Level Order Traversal II

2015-11-01 12:14 633 查看

Binary Tree Level Order Traversal II

Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root).

For example:
Given binary tree
{3,9,20,#,#,15,7}
,

3
/ \
9  20
/  \
15   7


return its bottom-up level order traversal as:

[
[15,7],
[9,20],
[3]
]

https://leetcode.com/problems/binary-tree-level-order-traversal-ii/

与上一题一样的思路,区别就是最后加入结果的时候往前加。
/article/7171050.html

/**
* Definition for a binary tree node.
* function TreeNode(val) {
*     this.val = val;
*     this.left = this.right = null;
* }
*/
/**
* @param {TreeNode} root
* @return {number[][]}
*/
var levelOrderBottom = function(root) {
var res = [], queue = [root];
traversal();
return res;

function traversal(){
var top, len = queue.length, subRes = [];
while(len--){
top = queue.shift();
if(top !== null && top.val !== undefined){
subRes.push(top.val);
queue.push(top.left);
queue.push(top.right);
}
}
if(subRes.length > 0){
res.unshift(subRes);
}
if(queue.length > 0){
traversal();
}
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: