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

    原文地址:https://www.jianshu.com/p/875d6346ce43

    时间限制:1秒 空间限制:32768K

    题目描述

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

    我的代码

    /*
    struct TreeNode {
        int val;
        struct TreeNode *left;
        struct TreeNode *right;
        TreeNode(int x) :
                val(x), left(NULL), right(NULL) {
        }
    };
    */
    class Solution {
    public:
        vector<vector<int> > Print(TreeNode* pRoot) {
            vector<vector<int>> res;
            if(pRoot==nullptr)
                return res;
            vector<TreeNode*> q1;
            q1.push_back(pRoot);
            vector<TreeNode*> q2;
            bool leftFirst=true;
            while(!q1.empty()){
                q2=q1;q1.clear();vector<int> row;
                while(!q2.empty()){
                    TreeNode* cur=q2.back();
                    q2.pop_back();
                    row.push_back(cur->val);
                    if(leftFirst){
                        if(cur->left)
                            q1.push_back(cur->left);
                        if(cur->right)
                            q1.push_back(cur->right);
                    }
                    else{
                        if(cur->right)
                            q1.push_back(cur->right);
                        if(cur->left)
                            q1.push_back(cur->left);
                    }
                }
                res.push_back(row);
                leftFirst=!leftFirst;
            }
            return res;
        }
    };
    

    运行时间:4ms
    占用内存:460k

  • 相关阅读:
    CF238B Boring Partition
    CF1424G Years
    CF995D Game
    CF468C Hack it!
    CF1417A Copy-paste
    CF1417B Two Arrays
    CF849B Tell Your World
    [洛谷P3389][模板]高斯消元法
    CF1225D
    P6687
  • 原文地址:https://www.cnblogs.com/cherrychenlee/p/10824845.html
Copyright © 2011-2022 走看看