zoukankan      html  css  js  c++  java
  • Binary Tree Zigzag Level Order Traversal

    题目:Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to right, then right to left for the next level and alternate between).

    For example: Given binary tree {3,9,20,#,#,15,7},

        3
       / 
      9  20
        /  
       15   7
    

    return its zigzag level order traversal as:

    [
      [3],
      [20,9],
      [15,7]
    ]

    思路:

    本题使用栈或者队列都可以做,只是现在对STL容器还不是很熟悉,里面的代码语法不熟。加油。

    从根节点开始,在队列中插入根节点,如果队列不为空则进入循环,则对于每个节点:

    如果左节点存在,插入当前根节点的左节点;

    如果右节点存在,插入当前根节点的右节点。

    如果是偶数次序,颠倒vector即可。

    属于中档题目。

    代码:

    /**
     * Definition for a binary tree node.
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
        vector<vector<int>> zigzagLevelOrder(TreeNode* root) {
            vector<vector<int> >res;
            if(root==NULL)  return res;
            queue<TreeNode*>q;
            q.push(root);
            bool flag=false;
            while(!q.empty()){
                int n=q.size();
                vector<int> tem;
                
                for(int i=0;i<n;i++){
                    TreeNode *tmp=q.front();
                    
                    tem.push_back(q.front()->val);
                    q.pop();
                    if(tmp->left)   q.push(tmp->left);
                    if(tmp->right)  q.push(tmp->right);
                }
                if(flag)    
                    reverse(tem.begin(),tem.end());
                flag=!flag;
                res.push_back(tem);
                
            }
            
            return res;      
        }
    };


  • 相关阅读:
    反弹连接的shellcode
    md5反查网站
    一种新的Heap区溢出技术分析
    ckeditor漏洞
    Fedora Core 4下的一些小问题
    MYCCL特征码定位器详细使用之内存定位
    dedecms5.7最新注入和上传漏洞
    脱壳方法汇总
    一种小堆(heap)溢出的另类利用方法
    对付非法操作! 系统做了如下记录!
  • 原文地址:https://www.cnblogs.com/jsrgfjz/p/8519844.html
Copyright © 2011-2022 走看看