剑指 Offer 32 - I. 从上到下打印二叉树

 

 使用递归的方式解决,先新建一个数组用于存放数据,树的每一层都是一个第二维的数组,然后再将数组扁平化

var levelOrder = function(root) {
    let levelArr = [];
    build(root,0);
    function build(node,level) {
        if(node === null) return null;
        if(!levelArr[level]) levelArr[level] = []; //没有这一步后续无法push
        levelArr[level].push(node.val);
        if(node.left) build(node.left,level+1);
        if(node.right) build(node.right,level+1);
    }
    levelArr = levelArr.reduce((pre,cur) => pre.concat(...cur),[]); //数组扁平化
    return levelArr;
};

 

posted @ 2021-03-29 10:31  JMH0113  阅读(28)  评论(0)    收藏  举报