分行从上到下打印二叉树

Posted 前端你好

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分行从上到下打印二叉树相关的知识,希望对你有一定的参考价值。


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


例子:

给定二叉树

分行从上到下打印二叉树


输出结果

6

4    8

3    5    7    9


分析:可以使用广度优先遍历的算法

(1)首先在0层获取根节点root,压入队列中。之后将level层作为数组的一维下标,这层的所有节点作为数组的二维元素。

(2)根据根节点的left和right查找1层的所有节点,并将节点元素压入队列,

当队列的第一个元素弹出时,将这个元素的左右节点压入队列。

(3)队列中弹出的元素根据level找到数组的一维下标,level相同的节点值添加到数组中一维数组下标对应的二维数组中。


解:

var levelOrder = function(root) { if(!root){ return []; } //根节点root和层数0 const queue = [[root, 0]], res = []; while(queue.length){ const [node, level] = queue.shift(); if(!res[level]){ //判断当前层是否初始化 res[level] = []; } res[level].push(node.val); //各层的元素 node.left && queue.push([node.left, level + 1]); //下一层的元素 node.right && queue.push([node.right, level + 1]); //下一层的元素 } return res;};

分行从上到下打印二叉树 

长按关注我吧  

以上是关于分行从上到下打印二叉树的主要内容,如果未能解决你的问题,请参考以下文章

剑指offer-面试题32-分行从上到下打印二叉树-二叉树遍历

剑指Offer-从上到下打印二叉树

剑指Offer对答如流系列 - 从上往下打印二叉树

剑指32-3 从上到下打印二叉树

《剑指Offer——三种顺序打印二叉树》代码

剑指offer 面试32题