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:
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();
};