题解

BFS

  1. var levelOrder = function(root) {
  2. return resolve2(root)
  3. };
  4. function resolve2(node) {
  5. if (!node) return []
  6. let queue = [node]
  7. let result = []
  8. while (queue.length) {
  9. const lvlen = queue.length
  10. result.push([])
  11. for (let i = 0; i < lvlen; i++) {
  12. node = queue.shift()
  13. result[result.length - 1].push(node.val)
  14. if (node.left) queue.push(node.left)
  15. if (node.right) queue.push(node.right)
  16. }
  17. }
  18. return result
  19. }

递归

var levelOrder = function(root) {
    return resolve2(root)
};

function resolve(node, level = 0, result = []) {
    if (!node) return result
    result[level] ??= []
    result[level].push(node.val)
    resolve(node.left, level + 1, result)
    resolve(node.right, level + 1, result)
    return result
}