天天看點

劍指 Offer 32 - II. 從上到下列印二叉樹 II JavaScript 實作問題描述代碼

劍指 Offer 32 - II. 從上到下列印二叉樹 II JavaScript 實作

  • 問題描述
  • 代碼

問題描述

從上到下按層列印二叉樹,同一層的節點按從左到右的順序列印,每一層列印到一行。

例如:

給定二叉樹: [3,9,20,null,null,15,7],

3
           

/

9 20

/

15 7

傳回其層次周遊結果:

[

[3],

[9,20],

[15,7]

]

代碼

var levelOrder = function(root) {
    if (!root) return [];
    let arr = [];//存放樹的根節點
    arr.push(root);
    let res = [];//輸出結果
    let level = 0;//樹的深度
    while(arr.length) {
        res[level] = [];//初始化數組子元素,存儲一層的節點
        let levelNum = arr.length;//目前層的節點個數
        while (levelNum--){
            let node = arr.shift();
            res[level].push(node.val);
            node.left && arr.push(node.left);
            node.right && arr.push(node.right);
        }
        level++;
    }
    return res;
};
           

繼續閱讀