Binary Tree Zigzag Level Order Traversal
来源:互联网 发布:反相比例运算电路数据 编辑:程序博客网 时间:2024/04/30 03:20
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]
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) { vector<vector<int>>res; if(!root) return res; queue<TreeNode*>que; que.push(root); int len=0; while(!que.empty()) { int size=que.size(); vector<int>tmp; for(int i=0;i<size;i++) { TreeNode *top=que.front(); tmp.push_back(top->val); if(top->left) que.push(top->left); if(top->right) que.push(top->right); que.pop(); } if((++len)%2==0) reverse(tmp.begin(),tmp.end()); res.push_back(tmp); } return res; }};
0 0
- LeetCode: Binary Tree Zigzag Level Order Traversal
- [LeetCode]Binary Tree Zigzag Level Order Traversal
- LeetCode Binary Tree Zigzag Level Order Traversal
- [Leetcode] Binary Tree Zigzag Level Order Traversal
- Leetcode: Binary Tree Zigzag Level Order Traversal
- LeetCode Binary Tree Zigzag Level Order Traversal
- [LeetCode] Binary Tree Zigzag Level Order Traversal
- [Leetcode] Binary Tree Zigzag Level Order Traversal
- Binary Tree Zigzag Level Order Traversal
- 【leetcode】Binary Tree Zigzag Level Order Traversal
- [LeetCode]Binary Tree Zigzag Level Order Traversal
- Binary Tree Zigzag Level Order Traversal
- Binary Tree Zigzag Level Order Traversal
- [Leetcode]Binary Tree Zigzag Level Order Traversal
- [leetcode]Binary Tree Zigzag Level Order Traversal
- Leetcode: Binary Tree Zigzag Level Order Traversal
- Binary Tree Zigzag Level Order Traversal
- Binary Tree Zigzag Level Order Traversal
- 培训讲解——创建第一个工程
- GCD浅析
- C++的tips(不定期更新)
- mybatis学习1
- C++项目中的extern "C" {}
- Binary Tree Zigzag Level Order Traversal
- GCD学习之——dispatch_suspend/dispatch_resume
- R语言正则表达式
- 释放xcode占用硬盘空间 (转)
- System.arraycopy 实现多次点击
- DICOM通信 - PDU数据包(2)
- Android长按Power键弹出关机Dialog框GlobalActions解析
- 使用orm(Sequelize) 操作 MySQL (2)
- hibernate中的addEntity setResultTransformer的比较