题解 | #按之字形顺序打印二叉树#
按之字形顺序打印二叉树
https://www.nowcoder.com/practice/91b69814117f4e8097390d107d2efbe0
层序遍历首先会想到队列。但是单队列模式,按照顺序打印下来可以实现层序,却很难知晓当前在第几层,因而不易实现每层转变打印顺序。可以换种思路,用两个栈去分别存放技术、偶数层。
/* function TreeNode(x) {
this.val = x;
this.left = null;
this.right = null;
} */
function Print(pRoot)
{
// write code here
if(pRoot === null){
return []
}
let odd = []
let even = []
let index = 1
let resArr = []
odd.push(pRoot)
while(odd.length || even.length){
if(index % 2 == 1){
let temp = []
while(odd.length){
let node = odd.pop()
temp.push(node.val)
if(node.left){
even.push(node.left)
}
if(node.right){
even.push(node.right)
}
}
index++
resArr.push(temp)
}
else{
let temp = []
while(even.length){
let node = even.pop()
temp.push(node.val)
if(node.right){
odd.push(node.right)
}
if(node.left){
odd.push(node.left)
}
}
resArr.push(temp)
index++
}
}
return resArr
}
module.exports = {
Print : Print
};
查看11道真题和解析