题目
[中等、队列]
题解
解题思路:
- 树的层次遍历+使用两个变量(a.记录当前行的节点数目 b.记录下一行的节点数目)
- 每一行的节点都要放到一个数组内部
function Print(pRoot)
{
let res = []; //最终结果
let queue = [];// 层次遍历queue
let temprow = [];// 存放每一层的结点
if(!pRoot) return res;
queue.push(pRoot);
let nextLevel = 0;//下一层结点数
let nowLevel = 1;// 本层结点数
while(queue.length){
const node = queue.shift();
temprow.push(node.val);
nowLevel--;
if(node.left) {
nextLevel++;
queue.push(node.left);
}
if(node.right) {
nextLevel++;
queue.push(node.right);
}
if(nowLevel === 0){
res.push(temprow);
temprow = [];
nowLevel = nextLevel;
nextLevel = 0;
}
}
return res;
}
文章链接: 把二叉树打印成多行[剑指offer]
★转载请注明来自 QW’s Blog!★