102 . 2分木レベル順序横断( JavaScriptソリューション)



説明
2進木の根を与えられて、そのノードの値のレベルオーダー横断を返します.(すなわち、左から右、レベルごとに).

解決方法
時間複雑性:O(n)
空間の複雑さ: O ( n )
// BFS
var levelOrder = function(root) {
    if(!root) return []
    const queue = []
    const output = []
    queue.push(root)
    while(queue.length) {
        // Remove all the current nodes in the queue and add each node's children to the queue
        const len = queue.length
        const row = []
        for(let i = 0; i < len; i++) {
            const cur = queue.shift()
            if(cur.left) queue.push(cur.left)
            if(cur.right) queue.push(cur.right)
            // Push the current node val to the row array
            row.push(cur.val)
        }
        // Push the current row array into the output array
        output.push(row)
    }
    return output
};