Leetcode148: Binary Tree Zigzag Level Order Traversal
2015-11-09 19:45
423 查看
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
return its zigzag level order traversal as:
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] ]
/** * 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) { queue<TreeNode*> q1; vector<vector<int>> result; vector<int> temp; if(!root) return result; bool l = true; q1.push(root); do { queue<TreeNode*> q2; temp.clear(); while(!q1.empty()) { TreeNode* Node = q1.front(); q1.pop(); temp.push_back(Node->val); if(Node->left) q2.push(Node->left); if(Node->right) q2.push(Node->right); } if(l == false) { reverse(temp.begin(), temp.end()); l = true; } else l = false; q1 = q2; result.push_back(temp); }while(!q1.empty()); return result; } };
相关文章推荐
- OC中字符串的使用方法
- 解决jeewx-api在maven update是遇到的pom.xml文件报错问题
- 关于多线程并发:每个开发人员都应了解的内容 .
- [urls.py设置技巧]URLconf处理其三:URL匹配返回结果
- Linux进程间通信——使用流套接字
- iOS 关于萌(蒙)层的添加,
- CDH运维问题列表
- bzoj1271.秦腾与教学评估
- 1101. Quick Sort
- poj2155
- 产生高斯分布随机数
- Redis安装与使用
- 大数据架构之:Storm
- 遥控器油门摇杆电位器封装尺寸图
- 使用errorPage无法跳转到设定的error.jsp页面
- HD_2092整数解
- invalid username/password logon denied
- 8数码问题的C++解决方案
- 文本挖掘之文本聚类(OPTICS)
- 【基于Jsoup】Android通过Jsoup抓取网页信息详解(一)