剑指OFFER----60、把二叉树打印成多行(js实现)

题目

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


思路

利用队列的特性,并且每一轮都删除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
}
上一篇:mysql数据库主从不同步解决办法


下一篇:树的实现