给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)
例如:
给定二叉树 [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
返回其自底向上的层次遍历为:
[
[15,7],
[9,20],
[3]
]
/**
* 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) {
var result = []
var dfs = (node, level) => {
if(!node){
return
}
result[level] ? result[level].push(node.val) : result[level] = [node.val];
level ++;
dfs(node.left, level);
dfs(node.right, level);
}
dfs(root, 0);
return result.reverse();
};
/**
* 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) {
var result = [],
queue = [];
queue.push(root);
while(queue.length > 0){
var len = queue.length;
var level = [];
while(len > 0){
var node = queue.shift();
level.push(node.val);
if(node.left){
queue.push(node.left)
}
if(node.right){
queue.push(node.right)
}
len--;
}
result.unshift(level);
}
return result;
};
← 买卖股票的最佳时机 II 二叉树的最大深度 →