zoukankan      html  css  js  c++  java
  • leetcode第一刷_Binary Tree Zigzag Level Order Traversal

    以出现的频率来看。树的层序遍历一定是考察的重点,除非工作人员想找题水数量。

    zigzag,还是有几道题的,层序的这个非常easy,假设是奇数层。reverse下面就可以。无他。我写的时候预计还不知道这个函数。要么怎么这么拙呢。。

    class Solution {
    public:
        vector<vector<int> > zigzagLevelOrder(TreeNode *root) {
            vector<vector<int> > res;
            if(root == NULL)    return res;
            vector<int> tpres;
            queue<TreeNode*> que;
            TreeNode *pNode;
            int level = 0;
            que.push(root);
            que.push(NULL);
            while(!que.empty()){
                pNode = que.front();
                que.pop();
                if(pNode == NULL){
                    level++;
                    if(level%2 == 0){
                        for(int i=0, j=tpres.size()-1;i<j;i++, j--){
                            int t = tpres[i];
                            tpres[i] = tpres[j];
                            tpres[j] = t;
                        }
                    }
                    res.push_back(tpres);
                    if(que.empty())
                        break;
                    else{
                        tpres.clear();
                        que.push(NULL);
                        continue;
                    }
                }
                tpres.push_back(pNode->val);
                if(pNode->left)
                    que.push(pNode->left);
                if(pNode->right)
                    que.push(pNode->right);
            }
            return res;
        }
    };


  • 相关阅读:
    不同压测场景的区别
    常用的re模块的正则匹配的表达式
    了解爬虫
    robots.txt 协议
    vue前台配置
    短信验证码的使用
    创建表
    数据库配置
    后台:Django项目创建
    虚拟环境的搭建
  • 原文地址:https://www.cnblogs.com/llguanli/p/6823728.html
Copyright © 2011-2022 走看看