剑指 Offer 32 - I. 从上到下打印二叉树
题目链接:https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-lcof/
本文基于JavaScript语言进行解题:一、层序遍历(队列)
一、层序遍历(队列)
思想:先将头结点入队;每轮出队一个结点时,若存在将其左(右)子结点入队;当队列为空时结束。
“听说层序遍历和队列更配哦。” hh~让我们共享丝滑,让美好继续漫延??
时间复杂度 O(N): N 为二叉树的节点数量,即 BFS 需循环 N 次。
1 /** 2 * @param {TreeNode} root 3 * @return {number[]} 4 * 广度优先遍历、队列 5 * 第一步将根结点入队,每个结点出队时若存在左(右)子结点则将其入队 6 */ 7 var levelOrder = function (root) { 8 if(root == null) return []; 9 let queue = []; 10 let result = []; 11 queue.push(root); 12 while(queue.length != 0) { 13 let node = queue.shift(); 14 result.push(node.val); //存储出队结点的值 15 if(node.left != null) queue.push(node.left); 16 if(node.right != null) queue.push(node.right); 17 } 18 return result; 19 };