采用层序遍历的方式。虽然leetcode有点问题,但结果没错的
var levelOrder = function(root) {
if(!root) return null;
let res = [];
let flag = 1;
let queue = [];
queue.push(root);
while(queue.length > 0){
let temp = [];
let tempQ = [];
if(flag === 1){
for(let i = 0; i<queue.length; i++){
temp.push(queue[i].val)
}
flag = -1;
}else{
for(let i = queue.length-1; i>-1; i--){
temp.push(queue[i].val)
}
flag = 1;
}
res.push(temp);
for(let i = 0; i<queue.length; i++){
queue[i].left && tempQ.push(queue[i].left);
queue[i].right && tempQ.push(queue[i].right);
}
queue = tempQ
}
return res;
};