zoukankan      html  css  js  c++  java
  • zigzag 层序遍历

    题目描述
    给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替)
    例如:
    给定的二叉树是{3,9,20,#,#,15,7},

    该二叉树之字形层序遍历的结果是
    [
    [3],

    /**
     * struct TreeNode {
     *	int val;
     *	struct TreeNode *left;
     *	struct TreeNode *right;
     * };
     */
    
    class Solution {
    public:
        /**
         * 
         * @param root TreeNode类 
         * @return int整型vector<vector<>>
         */
        vector<vector<int> > zigzagLevelOrder(TreeNode* root) {
           
            // write code here
            deque<TreeNode*> dq;
            vector<vector<int>> res;
             if (root ==NULL)  return res;
            
            dq.push_back(root);
            int dir = 0;
            int size;
            while(dq.size()) {
                
                vector<int> vec;
                size = dq.size();
                
                while (size-- > 0) {
                    
                    if (dir % 2==0) {
                        TreeNode* x = dq.front();
                        dq.pop_front();
                        TreeNode *left = x->left;
                        TreeNode *right = x->right;
                        vec.push_back(x->val);
                        if (left) dq.push_back(left);
                        if (right) dq.push_back(right);
    
                    }else{
                        TreeNode* x = dq.back();
                        dq.pop_back();
                        TreeNode * left = x ->left;
                        TreeNode * right = x->right;
                        if (right) dq.push_front(right);
                        if (left) dq.push_front(left);
                        
    
                        vec.push_back(x -> val);
                    }
                    
                }
                res.push_back(vec);
                ++dir;
                
            }
            return res;
            
        }
    };
    
    
  • 相关阅读:
    Scala--基础
    maven
    Storm 运行例子
    Storm 安装部署
    Storm
    Kafka 集群部署
    Redis Twemproxy
    Redis Sentinel
    获取URL中参数的值
    浏览器滚动条样式
  • 原文地址:https://www.cnblogs.com/lyr-2000/p/14065686.html
Copyright © 2011-2022 走看看