力扣----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