zoukankan      html  css  js  c++  java
  • Leetcode103. Binary Tree Zigzag Level Order Traversal二叉树的锯齿形层次遍历

    给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。

    例如:

    给定二叉树 [3,9,20,null,null,15,7],

    3 / 9 20 / 15 7

    返回锯齿形层次遍历如下:

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

     class Solution {
    public:
        vector<vector<int> > zigzagLevelOrder(TreeNode* root)
        {
            vector<vector<int> > res;
            if(root == NULL)
                return res;
            queue<TreeNode*> q;
            q.push(root);
            int cnt = 0;
            while(!q.empty())
            {
                int size = q.size();
                vector<int> temp;
                for(int i = 0; i < size; i++)
                {
                    TreeNode *node = q.front();
                    q.pop();
                    temp.push_back(node ->val);
                    if(node ->left)
                        q.push(node ->left);
                    if(node ->right)
                        q.push(node ->right);
                }
                if((cnt & 1) == 1)
                {
                    reverse(temp.begin(), temp.end());
                }
                res.push_back(temp);
                cnt++;
            }
            return res;
        }
    };
  • 相关阅读:
    2019春季助教学期总结
    第二次实验设计报告
    第十二周作业
    第十一周作业
    第十周作业
    第九周作业
    第八周作业
    万恶的第七周作业
    第六周作业
    堆积如山的第五周作业
  • 原文地址:https://www.cnblogs.com/lMonster81/p/10433847.html
Copyright © 2011-2022 走看看