您的位置:首页 > Web前端

剑指offer——60.把二叉树打印成多行

2017-09-28 16:06 435 查看

题目描述

从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。

代码

思路:采用队列数据结构,同时需要两个变量分别存储这一层和下一层结点个数。当前层结点个数为零时,则输出结点

function Print(pRoot)
{
// write code here
var queue = [];//存储节点队列
var result = [];
if(pRoot==null) return result;
var nextLevel = 0;
queue.push(pRoot);
var toBePrinted = 1;//每一行节点个数
var arr = [];
while(queue.length){
var temp = queue.shift();
toBePrinted--;
arr.push(temp.val);
if(temp.left){
queue.push(temp.left);
nextLevel++;
}
if(temp.right){
queue.push(temp.right);
nextLevel++;
}
if(toBePrinted==0){
toBePrinted=nextLevel;
nextLevel=0;
result.push(arr);
arr = [];
}
}
return result;

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