Binary Tree Level Order Traversal II

来源:互联网 发布:origin软件使用教程 编辑:程序博客网 时间:2024/06/08 09:26

Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root).

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

    3   / \  9  20    /  \   15   7

return its bottom-up level order traversal as:

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

Tags

Tree, BFS

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

*** We need to separate the current level and current level data for returning the result.

Classic BFS question.

/** * 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 === null) {        return [];    }    var ret = [];    var lastLevel = [root];    while (lastLevel.length > 0) {        var lastLevelData = [];        var currentLevel = [];        for (var i in lastLevel) {            lastLevelData.push(lastLevel[i].val);            if (lastLevel[i].left !== null) {                currentLevel.push(lastLevel[i].left);            }            if (lastLevel[i].right !== null) {                currentLevel.push(lastLevel[i].right);            }        }        ret.unshift(lastLevelData);        lastLevel = currentLevel;    }    return ret;};


0 0
原创粉丝点击