zoukankan      html  css  js  c++  java
  • 树---按之字形打印二叉树

    请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。

    分析:https://blog.csdn.net/qq_40608516/article/details/91128825

    /* function TreeNode(x) {
    
        this.val = x;
    
        this.left = null;
    
        this.right = null;
    
    } */
    
    function Print(pRoot)
    
    {
    
        // write code here
    
        const lists=[]
    
        if(pRoot===null){
    
            return lists
    
        }
    
        const stack1=[],stack2=[]
    
        let i=1
    
        stack2.push(pRoot)
    
        while(stack1.length!==0||stack2.length!==0){
    
            const list=[]
    
            //为奇数层
    
            if((i % 2) === 1){
    
                while(stack2.length!==0){
    
                    const temp=stack2[stack2.length-1]
    
                    stack2.pop()
    
                    list.push(temp.val)
    
                    if(temp.left!==null)stack1.push(temp.left)
    
                    if(temp.right!==null)stack1.push(temp.right)
    
                }
    
            }else{
    
                 while(stack1.length!=0){
    
                    const temp=stack1[stack1.length-1]
    
                    stack1.pop()
    
                    list.push(temp.val)
    
                    if(temp.right!==null)stack2.push(temp.right)
    
                    if(temp.left!==null)stack2.push(temp.left)
    
                }
    
            }
    
            i++
    
            lists.push(list)
    
        }
    
        return lists
    
    }
  • 相关阅读:
    第十三周学习进度条
    冲刺第四天
    第二天冲刺
    第三天冲刺
    第一天冲刺
    课下作业
    第十二周学习进度条
    课下作业
    webp与png、jpg相互转换
    Node疑难解决
  • 原文地址:https://www.cnblogs.com/mlebk/p/12632495.html
Copyright © 2011-2022 走看看