从上到下打印二叉树 II

142 阅读1分钟

从上到下打印二叉树 II

从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。

 

例如: 给定二叉树: [3,9,20,null,null,15,7],

    3
   / \
  9  20
    /  \
   15   7

返回其层次遍历结果:

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

 

提示:

节点总数 <= 1000

来源:力扣(LeetCode) 链接:leetcode-cn.com/problems/co… 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路

遍历二叉树的时候,记录二叉树的节点是第几个,然后push进相对应的数组中即可

代码

var levelOrder = function (root) {
    let stack = [];
    getResult(root, 0, stack);
    return stack;
};

function getResult(root, k, stack) {
    if (!root) return;
    if (!stack[k]) stack[k] = [];
    stack[k].push(root.val);
    getResult(root.left, k + 1, stack);
    getResult(root.right, k + 1, stack);
    return;
}