LeetCode OJ - Binary Tree Zigzag Level Order Traversal
来源:互联网 发布:计算机服装排版软件 编辑:程序博客网 时间:2024/06/02 01:35
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]]
分析:采用层次遍历,每一层要记录必须要用两个队列
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution { vector<vector<int> > ret;public: vector<vector<int> > zigzagLevelOrder(TreeNode *root) { if(!root) return vector<vector<int> > (); int direct = 0; queue<TreeNode *> que; queue<TreeNode *> next; vector<int> item; que.push(root); while(!que.empty()) { TreeNode *cur = que.front(); que.pop(); //访问cur item.push_back(cur->val); if(cur->left) next.push(cur->left); if(cur->right) next.push(cur->right); if(que.empty()) { if(direct % 2) { reverse(item); } direct++; ret.push_back(item); item.clear(); swap(que, next); } } return ret; } void reverse(vector<int> &item) { if(item.size() == 0) return ; int x1 = 0, x2 = item.size() - 1; while(x1 <= x2) { swap(item[x1], item[x2]); x1++, x2--; } }};
0 0
- LeetCode OJ:Binary Tree Zigzag Level Order Traversal
- LeetCode OJ - Binary Tree Zigzag Level Order Traversal
- LeetCode OJ Binary Tree Zigzag Level Order Traversal
- <LeetCode OJ> 103. 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
- [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
- sql -复制已有表结构,创建新表
- TCP 长连接与短连接的区别与实现
- linux 路由表 的一些相关资料
- SuSELinux上部署pppoe-server服务,rp-pppoe
- 最大流Edmonds-Karp模板
- LeetCode OJ - Binary Tree Zigzag Level Order Traversal
- sql中charindex的使用
- 用Scala做并行计算
- 黑马程序员-(文章的名字)
- ZOJ ACM 2060(JAVA)
- 在数组中插入一数字,然后从大到小输出。但是结果总是不对,求大神指导
- Android ADB server didn't ACK * failed to start daemon * 简单有效的解决方案
- Ubuntu12.04安装Qt4.8集成开发环境(QtCreator)
- LeetCode-Permutations