给你二叉树的根节点 root ,返回其节点值 自底向上的层序遍历 。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)

    示例 1:
    image.png
    输入:root = [3,9,20,null,null,15,7]
    输出:[[15,7],[9,20],[3]]
    示例 2:

    输入:root = [1]
    输出:[[1]]
    示例 3:

    输入:root = []
    输出:[]

    1. /**
    2. * Definition for a binary tree node.
    3. * function TreeNode(val, left, right) {
    4. * this.val = (val===undefined ? 0 : val)
    5. * this.left = (left===undefined ? null : left)
    6. * this.right = (right===undefined ? null : right)
    7. * }
    8. */
    9. /**
    10. * @param {TreeNode} root
    11. * @return {number[][]}
    12. */
    13. var levelOrderBottom = function (root) {
    14. // 反过来的层序遍历, 即把push 改成unshift 就行
    15. let res = [];
    16. if (!root) return res;
    17. const queue = [root];
    18. while (queue.length !== 0) {
    19. let length = queue.length;
    20. // 记录节点
    21. let levelList = [];
    22. for (let i = 0; i < length; i += 1) {
    23. const node = queue.shift();
    24. levelList.push(node.val);
    25. if (node.left !== null) {
    26. queue.push(node.left);
    27. }
    28. if (node.right !== null) {
    29. queue.push(node.right);
    30. }
    31. }
    32. res.unshift(levelList);
    33. };
    34. return res;
    35. };

    image.png