LeetCode #103 - Binary Tree Zigzag Level Order Traversal
2016-11-03 23:06
302 查看
题目描述:
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
return its zigzag level order traversal as:
将层序遍历的奇数层的向量元素反过来即可。
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,null,null,15,7],
3 / \ 9 20 / \ 15 7
return its zigzag level order traversal as:
[ [3], [20,9], [15,7] ]
将层序遍历的奇数层的向量元素反过来即可。
class Solution { public: vector<vector<int>> zigzagLevelOrder(TreeNode* root) { queue<pair<TreeNode*,int> > q; vector<pair<int,int> > v; if(root==NULL) { vector<vector<int> > result; return result; } else if(root!=NULL) { pair<TreeNode*,int> p; p.first=root; p.second=0; q.push(p); while(!q.empty()) { p=q.front(); pair<int,int> x; x.first=p.first->val; x.second=p.second; v.push_back(x); q.pop(); if(p.first->left!=NULL) { pair<TreeNode*,int> l; l.first=p.first->left; l.second=p.second+1; q.push(l); } if(p.first->right!=NULL) { pair<TreeNode*,int> r; r.first=p.first->right; r.second=p.second+1; q.push(r); } } } int n=v.size(); int m=v[n-1].second; vector<vector<int> > result(m+1); for(int i=0;i<n;i++) { result[v[i].second].push_back(v[i].first); } vector<vector<int> > Result=result; for(int i=0;i<=m;i++) { if(i%2==1) { for(int j=0;j<result[i].size();j++) { Result[i][j]=result[i][result[i].size()-1-j]; } } } return Result; } };
相关文章推荐
- Leetcode # 103 Binary Tree Zigzag Level Order Traversal
- 103. Binary Tree Zigzag Level Order Traversal
- 103. Binary Tree Zigzag Level Order Traversal
- LeetCode_103 Binary Tree Zigzag Level Order Traversal
- 103. Binary Tree Zigzag Level Order Traversal
- leetcode_103_Binary Tree Zigzag Level Order Traversal
- leetcode_103题——Binary Tree Zigzag Level Order Traversal(广度优先搜索,队列queue,栈stack)
- leetcode_103 Binary Tree Zigzag Level Order Traversal
- LeetCode: 103_Binary Tree Zigzag Level Order Traversal | 二叉树Zigzag层次遍历 | Medium
- 103. Binary Tree Zigzag Level Order Traversal
- leetcode——103——Binary Tree Zigzag Level Order Traversal
- [LeetCode]103 Binary Tree Zigzag Level Order Traversal
- Leetcode-103(Java) Binary Tree Zigzag Level Order Traversal
- leetcode 103: Binary Tree Zigzag Level Order Traversal
- 103. Binary Tree Zigzag Level Order Traversal
- leetcode_c++:栈:Binary Tree Zigzag Level Order Traversal(103)
- Leetcode 103 ,Binary Tree Zigzag Level Order Traversal(二叉树Z形分层遍历)
- 103.leetcode Binary Tree Zigzag Level Order Traversal(medium)[二叉树层次遍历 栈]
- 103. Binary Tree Zigzag Level Order Traversal
- 103. Binary Tree Zigzag Level Order Traversal