不分行从上到下打印二叉树
题目:从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。
例子:
输出顺序为: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;};
长按关注我吧
