[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 7return 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(); } } };
相关文章推荐
- js调用方法传递变量作为参数的问题
- PHP和Javascript访问数组和对象时的区别
- express结合EJS模板渲染HTML
- Angular(一)入门环境配置web-server.js出错解决
- extjs gride 显示序号
- Extjs 上传文件 IE不兼容的问题[提示下载保存]
- Extjs 上传文件 IE不兼容的问题[提示下载保存]
- js各种验证
- 周末总结正则表达式(完整篇)
- js写的一个简单的手风琴菜单
- javascript跨域总结之window.name实现的跨域数据传输
- JavaScript——js获取url方法,方便以后页面的跳转
- JS之表格过滤器
- ajax返回json数据
- js给url添加查询参数
- js闭包是什么?
- JavaScript代码性能优化总结 20151101
- Js数组
- D3.js学习总结
- 关于json_encode()的使用注意