【leetcode】Binary Tree Zigzag Level Order Traversal
2013-04-20 12:15
429 查看
Question :
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:
confused what
Anwser 1 :
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.
Anwser 1 :
/** * 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) { // Start typing your C/C++ solution below // DO NOT write int main() function vector<vector<int>> ret; if(root == NULL) return ret; vector<int> vec; stack<TreeNode *> Q; stack<TreeNode *> Q2; // extra space bool flag = true; Q.push(root); while(!Q.empty()){ TreeNode *tmp = Q.top(); Q.pop(); if(tmp != NULL){ vec.push_back(tmp->val); if(flag){ if(tmp->left) Q2.push(tmp->left); if(tmp->right) Q2.push(tmp->right); } else { if(tmp->right) Q2.push(tmp->right); if(tmp->left) Q2.push(tmp->left); } } if(Q.empty()){ // one row end ret.push_back(vec); vec.clear(); flag = !flag; swap(Q, Q2); } } return ret; } };
相关文章推荐
- 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】
- Leetcode: Binary Tree Zigzag Level Order Traversal
- LeetCode刷题笔录 Binary Tree Zigzag Level Order Traversal
- leetcode[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 103 Binary Tree Zigzag Level Order Traversal
- LeetCode-Binary Tree Zigzag Level Order Traversal
- 【Leetcode】【python】Binary Tree Zigzag Level Order Traversal
- 103.leetcode Binary Tree Zigzag Level Order Traversal(medium)[二叉树 栈]
- Leetcode 103 ,Binary Tree Zigzag Level Order Traversal(二叉树Z形分层遍历)
- C++详解Leetcode:103. Binary Tree Zigzag Level Order Traversal
- LeetCode 49 Binary Tree Zigzag Level Order Traversal
- [Leetcode]Binary Tree Zigzag Level Order Traversal
- [LeetCode] Binary Tree Zigzag Level Order Traversal
- LeetCode 103 Binary Tree Zigzag Level Order Traversal(二叉树层序遍历)