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

按之字形顺序打印二叉树

http://www.nowcoder.com/practice/91b69814117f4e8097390d107d2efbe0

抄的

/* function TreeNode(x) {
    this.val = x;
    this.left = null;
    this.right = null;
} */

function Print(pRoot)
{
    // write code here
    let res=[]
    let quene=[]
    quene.push(pRoot)
    while(quene[0]){
        let tmp=[]
        for(let i=quene.length;i>0;i--){ //for循环用来记录当前层有几个要打印
            let node=quene.shift()
            tmp.push(node.val)
            if(node.left){
                 quene.push(node.left)
            }
            if(node.right){
                quene.push(node.right)
            } 
            }
            res.push(tmp)
        
        if(quene.length===0) break;
        tmp=[]
        for(let i=quene.length;i>0;i--){
            let node=quene.pop() //从右往左边
            tmp.push(node.val)
            if(node.right){
                quene.unshift(node.right)
            }
            if(node.left){
                 quene.unshift(node.left)
            }
        }
            res.push(tmp)      
    }
            return res
    
}

module.exports = {
    Print : Print
};
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务