力扣----6. 二叉树的层序遍历(JavaScript, Java实现)


题目描述:

给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。

 

示例:
二叉树:[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实现:

待补充

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM