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

    题目描述

    请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。
    思路:两个栈,父节点保存一个栈,从右到左输入,从左到右输出,孩子节点在另一个栈,从左到右输入,从右到左输出;
        vector<vector<int> > Print(TreeNode* pRoot) {
            
                vector<vector<int>>res;
                if(pRoot==NULL) return res;
                stack<TreeNode*>q1;
                stack<TreeNode*>q2;
                q1.push(pRoot);
                while(!q1.empty()||!q2.empty())
                {
                    vector<int>r;
                    while(!q1.empty())
                    {
                        TreeNode*p=q1.top();
                        r.push_back(p->val);
                        q1.pop();
                        if(p->left) q2.push(p->left);
                        if(p->right) q2.push(p->right);

                    }
                    res.push_back(r);
                    r.clear();
                    bool flag=false;
                    while(!q2.empty())
                    {
                        flag=true;
                        TreeNode*p=q2.top();
                        r.push_back(p->val);
                        q2.pop();
                        if(p->right) q1.push(p->right);

                        if(p->left) q1.push(p->left);
                    }
                    if(flag)
                    res.push_back(r);
                }
                return res;
        }
     
  • 相关阅读:
    Flume spooldir 报错 MalformedInputException: Input length = 1
    Python股票量化投资-2.量化投资介绍
    Python股票量化投资-1.开发环境部署
    centos 8 安装 activemq5.15 开机自启动
    Hystrix 说明
    Centos 8 安装 tomcat8.5 开机自启动
    Centos 8 安装 JDK 1.8
    centos 8.0 安装 nginx-1.18.0 开机自启动
    Error LNK2019: unresolved external symbol "char * __stdcall _com_util::ConvertBSTRToString(wchar_t *)"
    如何复制DataRow(dataTabel中的行)
  • 原文地址:https://www.cnblogs.com/trouble-easy/p/12988437.html
Copyright © 2011-2022 走看看