题目描述
剑指 Offer 32 - II. 从上到下打印二叉树 II
解题思路
- 利用
queue
来存储二叉树每一层的节点,注意先左后右 - 因为左节点一直在队头所以遍历时使用
queue.shift()
来获取节点并从queue
中删除即可
代码实现
/**
* Definition for a binary tree node.
* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* @param {TreeNode} root
* @return {number[][]}
*/
var levelOrder = function(root) {
if (root == null) return []
let queue = [root]
let res = []
while(queue.length) {
let tmp = [], n = queue.length;
for(let i = 0; i < n; i++) {
let node = queue.shift()
tmp.push(node.val)
if (node.left) queue.push(node.left)
if (node.right) queue.push(node.right)
}
res.push(tmp)
}
return res
};