二叉树:按之字形顺序打印二叉树

73 阅读1分钟

image.png

方法

  1. 先来一遍层序遍历
  2. 然后把符合条件的进行翻转
function Print(pRoot)
{
    const arr = [];
    das(pRoot,arr,0);
    
    // 反转
    for(let i=0; i<arr.length; i++){
       if(i%2){
           arr[i].reverse();
       }
    }
    return arr;
}


function das(root,arr,level)
{
    if(!root) return;
    // 不存在开启新的层级
    if(!arr[level]){
        arr[level] = [];
    }
    arr[level].push(root.val);
    das(root.left,arr,level+1);
    das(root.right,arr,level+1);
}

module.exports = {
    Print : Print
};