题解 | #JZ77 按之字形顺序打印二叉树#

按之字形顺序打印二叉树

http://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 resArr=[]
    let oddStack=[] //奇数层节点
    let evenStack=[] //偶数层节点
    let index=1
    oddStack.push(pRoot)  //第一层的根节点推入
    while(oddStack.length||evenStack.length){
        if(index%2===1){ //处理奇数层出栈,子节点入偶数层
            let temp=[]
            while(oddStack.length){
                let node=oddStack.pop()
                temp.push(node.val)
                if(node.left){evenStack.push(node.left)} //每一个奇数层子节点(如果存在)按顺序推入evenstack
                if(node.right){evenStack.push(node.right)}
            }
            
            resArr.push(temp)
            index++
            
        }
        else{ //处理偶数层出栈,子节点入奇数层
            let temp=[]
            while(evenStack.length){
                let node=evenStack.pop()
                temp.push(node.val)
                if(node.right){oddStack.push(node.right)} //每一个偶数层的子节点(如果存在)按顺序推入oddStack
                if(node.left){oddStack.push(node.left)}
            }
            
            resArr.push(temp)
            index++
           
        }
    }
    return resArr
}
module.exports = {
    Print : Print
};
全部评论
可不可以按照love的顺序打印
点赞 回复 分享
发布于 2021-11-23 23:17

相关推荐

机械打工仔:有说的你怀疑一下就行了,直接问也太实诚了
点赞 评论 收藏
分享
不要停下啊:大二打开牛客,你有机会开卷了,卷起来,去找课程学习,在牛客上看看大家面试笔试都需要会什么,岗位有什么需求就去学什么,努力的人就一定会有收获,这句话从来都经得起考验,像我现在大三了啥也不会,被迫强行考研,炼狱难度开局,啥也不会,找工作没希望了,考研有丝丝机会
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务