【LeetCode】Binary Tree Zigzag Level Order Traversal
2014-08-17 19:30
232 查看
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
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:
The above binary tree is serialized as
思路:BFS,对偶数层进行逆序。
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}".
思路:BFS,对偶数层进行逆序。
/** * 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> > ret; vector<int> rettmp; queue<TreeNode *> level; TreeNode *tmp = root; int i = 0; level.push(root); if(NULL == root)return ret; level.push(NULL); while(!level.empty()){ tmp = level.front(); level.pop(); if(NULL == tmp){ if(0 == (++i)%2){ reverse(rettmp.begin(), rettmp.end()); } ret.push_back(rettmp); rettmp.clear(); if(!level.empty())level.push(NULL); }else{ if(NULL != tmp->left){ level.push(tmp->left); } if(NULL != tmp->right){ level.push(tmp->right); } rettmp.push_back(tmp->val); } } return ret; } };
相关文章推荐
- 70_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 103 Binary Tree Zigzag Level Order Traversal 题解
- leetcode--Binary Tree Zigzag Level Order Traversal
- 【LeetCode】Binary Tree Zigzag Level Order Traversal 二叉树的锯齿形层次遍历 - Medium(LinkedIn)
- leetcode_103题——Binary Tree Zigzag Level Order Traversal(广度优先搜索,队列queue,栈stack)
- LeetCode力扣之103. Binary Tree Zigzag Level Order Traversal
- Binary Tree Zigzag Level Order Traversal --- LeetCode
- leetcode(十四)Binary Tree Zigzag Level Order Traversal
- LeetCode: 103_Binary Tree Zigzag Level Order Traversal | 二叉树Zigzag层次遍历 | Medium
- Leetcode NO.103 Binary Tree Zigzag Level Order Traversal
- [LeetCode][Java] Binary Tree Zigzag Level Order Traversal
- LeetCode No.103 Binary Tree Zigzag Level Order Traversal
- LeetCode | Binary Tree Zigzag Level Order Traversal
- Leetcode[103]-Binary Tree Zigzag Level Order Traversal
- [LeetCode 103] Binary Tree Zigzag Level Order Traversal
- leetcode 106: Binary Tree Zigzag Level Order Traversal
- leetcode — binary-tree-zigzag-level-order-traversal