(Js) Leetcode 107. Binary tree hierarchy traversal II

topic:

Given a binary tree, return the bottom-up traversal of its node values. (That is, from the layer where the leaf node is located to the layer where the root node is located, traversing from left to right layer by layer)

For example:
Given a binary tree [3,9,20,null,null,15,7],

    3
   / \
  9 20
    / \
   15 7
returns its bottom-up sequence traversal as:

[
  [15,7],
  [9,20],
  [3]
]

Ideas:

Reference article

Code:

/**
 * Definition for a binary tree node.
 * function TreeNode(val) {
 *     this.val = val;
 *     this.left = this.right = null;
 * }
 */
/**
 * @param {TreeNode} root
 * @return {number[][]}
 */
var levelOrderBottom = function (root) {
    if (!root) return []
    let res = [],
        queue = [root]
    while (queue.length) {
        let curr = [],
            temp = []
        while (queue.length) {
            let node = queue.shift()
            curr.push(node.val)
            if (node.left) temp.push(node.left)
            if (node.right) temp.push(node.right)
        }
        res.push(curr)
        queue = temp
    }
    return res.reverse();
};

operation result:

Guess you like

Origin blog.csdn.net/M_Eve/article/details/113804484