LeetCode-Binary Tree Zigzag Level Order Traversal
来源:互联网 发布:数据分析师东华软件 编辑:程序博客网 时间:2024/05/29 11:56
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]]
confused what "{1,#,2,3}"
means? > read more on how binary tree is serialized on OJ.
OJ's Binary Tree Serialization:
The serialization of a binary tree follows a level order traversal, where '#' signifies a path terminator where no node exists below.
Here's an example:
1 / \ 2 3 / 4 \ 5
The above binary tree is serialized as "{1,2,3,#,#,4,#,#,5}"
.Code:
<span style="font-size:14px;">/** * Definition for binary tree * 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> > results; if (!root) return results; vector<queue<TreeNode *> > q(2, queue<TreeNode *>()); int index = 0; q[index].push(root); while (!q[index].empty()) { vector<int> result; while (!q[index].empty()) { root = q[index].front(); q[index].pop(); result.push_back(root->val); if (root->left) q[(index+1)%2].push(root->left); if (root->right) q[(index+1)%2].push(root->right); } if (index) reverse(result.begin(), result.end()); index = (index+1)%2; results.push_back(result); } return results; }};</span>
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
- 【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
- Jquery之经典用法
- 单例模式
- 多线程相关知识
- "java is very beautiful,PHP is能够检测出其中的Java,uid,php字符串,而且不区分大小写,并写出其中字符串出现的位置,该如何解啊?
- Web页面中八种创建多列等高(等高列布局)的实现技术
- LeetCode-Binary Tree Zigzag Level Order Traversal
- xtrabackup备份恢复测试
- Ubuntu启动问题以及Grub Rescue修复方法
- 用java 7 启动Eclipse for mac
- ubuntu14.04下的java jdk和eclipse和C/C++ Development Tools的简单安装以及使用
- 【腾讯】快速找到未知长度单链表的中间节点
- r cannot be resolved to a variable 问题解决 / R.java文件没有自动生成
- 圆形进度条动画效果实现
- jQuery 参考手册 - 选择器