与102相比就增加了flag,用以确定要不要进行reverse操作

reverse:STL公共函数,对于一个有序容器的元素reverse ( s.begin(),s.end() )可以使得容器s的元素顺序反转;

C++代码:

/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
/**
最直接的想法是利用层次遍历,然后reverse偶数层的数据 **/
class Solution {
public:
vector<vector<int>> zigzagLevelOrder(TreeNode* root) {
if(root==NULL) return {};
vector<vector<int>> res;
queue<TreeNode*> q;
TreeNode* p;
q.push(root);
int flag=;
while(!q.empty()){
int k=q.size();
vector<int> level;
for(int i=;i<k;i++){
p=q.front();
q.pop();
level.push_back(p->val);
if(p->left) q.push(p->left);
if(p->right) q.push(p->right);
}
if(flag==) reverse(level.begin(),level.end());
flag=(flag+)%;
res.push_back(level);
}
return res;
}
};

相似:

102 103 107

最新文章

  1. 那些年构建SSH所遇到的坑
  2. silverlight如何通过单独部署的WCF站点访问sharepoint2013的图片库
  3. zigbee学习之路(一):zigbee介绍
  4. HDU 1536 &amp; 1944
  5. Linux 服务器的网络配置 - 2. 查看 Linux 服务器的进程
  6. 一个简单的3DTouch、Peek和Pop手势Demo,附github地址
  7. customerized convert from field type to DB field&#39;s type
  8. ganymed-ssh2使用
  9. Linux+svn无法显示日志
  10. platform平台设备驱动简化示例代码
  11. 关于JNI程序中引用另外一个lib
  12. codevs 1027 姓名与ID
  13. 为什么要web语义化
  14. word2vec 中的数学原理具体解释(四)基于 Hierarchical Softmax 的模型
  15. Linux运维项目实战系列
  16. nongsanli
  17. 远程连接服务器jupyter notebook、浏览器以及深度学习可视化方法
  18. 什么是Vagrant
  19. scrollview 嵌套imageview显示长图
  20. DDS生成正弦波

热门文章

  1. 多线程编程-- part 4 线程间的通信
  2. Ubuntu安装配置Tensorflow-GPU
  3. 利用shell脚本做一个用户登录系统
  4. jmeter通过if控制器控制业务比例
  5. 同步windows时间到linux服务器
  6. 微信小程序添加底部导航栏
  7. Django—ajax、前端后端编码格式,bulk_create批量插入语数据库、自定义分页
  8. uniapp动态改变底部tabBar和导航标题navigationBarTitleText
  9. python模块turtle简单用法
  10. POJ 3613 [ Cow Relays ] DP,矩阵乘法