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

剑指offer JavaScript版 (60)

2019-08-15 21:33 127 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/Damp_XUN/article/details/99656617

把二叉树打印成多行

题目描述

从上层到下层从左到右按层输出二叉树

  • 用队列先进先出的性质,从左到右先遍历下层节点,到下层输出的时候,也可以从左到右输出。
  • 需要记录下层节点的个数
  • 需要记录当前层打印节点的个数
function Print(pRoot)
{
// write code here
const queue=[]
const res=[]
if(pRoot==null){
return res;
}
let nextlevel=0;
let curlevel=1;
queue.push(pRoot);
let list=[]
while(queue.length!=0){
const pNode=queue.shift();
list.push(pNode.val)
if(pNode.left!=null){
nextlevel++;
queue.push(pNode.left)
}
if(pNode.right!=null){
nextlevel++;
queue.push(pNode.right)
}
curlevel--;
if(curlevel==0){
res.push(list)
curlevel=nextlevel;
nextlevel=0;
list=[];
}
}
return res;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: