LeetCode 103. Binary Tree Zigzag Level Order Traversal
来源:互联网 发布:小说 炫浪网络社区 编辑:程序博客网 时间:2024/06/11 03:58
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]]
Just use a stack and a flag..... But it is very easy to make mistakes....
vector<vector<int>> zigzagLevelOrder(TreeNode* root) { if(!root) return {}; stack<TreeNode*> nodes; nodes.push(root); vector<vector<int>> res; bool leftToRight = true; while(!nodes.empty()) { vector<int> level; stack<TreeNode*> nextLevel; while(!nodes.empty()) { TreeNode* tmp = nodes.top(); nodes.pop(); level.push_back(tmp->val); if(leftToRight) { if(tmp->left) nextLevel.push(tmp->left); if(tmp->right) nextLevel.push(tmp->right); } else { if(tmp->right) nextLevel.push(tmp->right); if(tmp->left) nextLevel.push(tmp->left); } } leftToRight = !leftToRight; res.push_back(level); nodes.swap(nextLevel); } 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
- 【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
- 第3章 相互依存性与贸易的好处
- 【序】在行进中,不进则退
- java基础(4)--Java中ArrayList和LinkedList区别
- 使用Openmp并行化
- UVA 10801 Lift Hopping(最短路)
- LeetCode 103. Binary Tree Zigzag Level Order Traversal
- C++使用事件对象实现多线程
- Json解析库的使用
- Android Studio下的应用性能优化总结-内存优化
- Scala之旅-隐式转换
- 第二专题 第三道题
- MySql文件中My.ini的理解
- C++中extern “C”含义深层探索
- jquery 常用异步请求(ajax,post,get)和json对象的遍历