题目描述:
给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。
示例:
二叉树:[3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
返回其层次遍历结果:[[3], [9,20], [15,7]]
JavaScript实现:
乘热打铁,第5题的用bfs实现,稍微改进下就是下列代码。思路看5的BFS吧
时间复杂度:每个点进队出队各一次,故渐进时间复杂度为 O(n)O(n)。
空间复杂度:队列中元素的个数不超过 nn 个,故渐进空间复杂度为 O(n)O(n)。
/** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; * this.left = this.right = null; * } */ /** * @param {TreeNode} root * @return {number[][]} */ var levelOrder = function(root) { if(!root) return []; let queue = [root]; let res = []; while(queue.length){ let temp = [] let queueLength = queue.length; while(queueLength) { let node = queue.shift(); node.left && queue.push(node.left); node.right && queue.push(node.right) queueLength--; temp.push(node.val); } res.push(temp); } return res };
Java实现:
待补充
力扣----6. 二叉树的层序遍历(JavaScript, Java实现)
原文:https://www.cnblogs.com/manru75/p/13059778.html