二叉树结构,输出指定数据结构

30 阅读1分钟

图.png

要求:输出这样的数据[ [ 3 ], [ 9, 20 ], [ 91, 92, 15, 7 ], [ 11, 22 ] ]
const root = {
  value: 3,
  left: {
    value: 9,
    left: {
      value: 91,
    },
    right:{
      value: 92
    }
  },
  right:{
    value: 20,
    left: {
      value: 15
    },
    right: {
      value: 7,
      left:{
        value:11
      },
      right:{
        value:22
      }
    }
  }
}


function treeNode(root){ 
  if(!root){
    return []
  }
  const res = [];
  const arr = [root];
  while(arr.length){
    let len = arr.length;
    const stack = [];
    while(len--){
      let p = arr.shift();
      stack.push(p.value);
      if(p.left) arr.push(p.left);
      if(p.right) arr.push(p.right)
    }
    res.push(stack)
  }
  return res;

}