题目
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
思路
利用队列的特性,并且每一轮都删除queue旧的数据
function Print(pRoot) {
// write code here
if (!pRoot) {
return []
}
let result = []
let queue = []
queue.push(pRoot)
while (queue.length > 0) {
let len = queue.length
let row = []
for (let i = 0; i < len; i++) {
row.push(queue[i].val)
if (queue[i].left) {
queue.push(queue[i].left)
}
if (queue[i].right) {
queue.push(queue[i].right)
}
}
queue = queue.slice(len)
result.push(row)
}
return result
}