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

[LeetCode][JavaScript]Binary Tree Level Order Traversal

2015-11-01 12:12 716 查看

Binary Tree Level Order Traversal

Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).For example:
Given binary tree
{3,9,20,#,#,15,7}
,
3
/ \
9  20
/  \
15   7
return its level order traversal as:
[
[3],
[9,20],
[15,7]
]

https://leetcode.com/problems/binary-tree-level-order-traversal/按层遍历树,用一个队列记录当前层的节点,递归访问每一层。
/**
* Definition for a binary tree node.
* function TreeNode(val) {
*     this.val = val;
*     this.left = this.right = null;
* }
*/
/**
* @param {TreeNode} root
* @return {number[][]}
*/
var levelOrder = 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.push(subRes);
}
if(queue.length > 0){
traversal();
}
}
};

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: