题目:不分行从上到下打印二叉树
从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。例如输入如下的二叉树,则一次打印出8,6,10,5,7,9,11.
8
/ \
6 10
/ \ / \
5 7 9 11
示例、
给定二叉树: [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
返回: [3,9,20,15,7]
题解
广度优先遍历
/**
* 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) {
const res = [];
if (!root) return res;
const queue = [];
queue.push(root);
while(queue.length) {
let curNOde = queue.shift();
res.push(curNOde.val);
if (curNOde.left) {
queue.push(curNOde.left)
}
if (curNOde.right) {
queue.push(curNOde.right)
}
}
return res;
};
复杂度分析
- 时间复杂度:O(n)
- 空间复杂度:O(n)
引用
- 剑指offer书籍
- 力扣题解