vlambda博客
学习文章列表

不分行从上到下打印二叉树


题目:从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。


例子:

不分行从上到下打印二叉树

输出顺序为: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;}; 

不分行从上到下打印二叉树 

长按关注我吧