不分行从上到下打印二叉树
题目:从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。
例子:
输出顺序为:6、4、8、3、5、7、9
分析:创建一个队列用来当容器。
(1)root元素放在queue中,取出queue中的root,添加到数组中。
(2)root的左节点有值,就将其压入队列,root的右节点有值同样压入队列
(3)按照顺序,root左节点先出队列,将其添加到数组中,并且将root左节点的左右子节点压入队列。依次类推。最终数组的顺序就是从上到下打印二叉树的顺序。
解:
var levelOrder = function(root) {
if(!root){
return [];
}
const queue = [root];
const data = [];
while(queue.length){
let temp = queue.shift();
data.push(temp.val);
temp.left && queue.push(temp.left);
temp.right && queue.push(temp.right);
}
return data;
};
长按关注我吧