[LeetCode] Binary Tree Zigzag Level Order Traversal
2012-10-29 14:18
465 查看
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:
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] ] 用BFS然后根据层数来判断是否要反转列表
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ struct Node { TreeNode *node; int level; Node(){} Node(TreeNode *n, int l):node(n), level(l){} }; class Solution { private: vector<vector<int> > ret; public: vector<vector<int> > zigzagLevelOrder(TreeNode *root) { // Start typing your C/C++ solution below // DO NOT write int main() function ret.clear(); if (root == NULL) return ret; queue<Node> q; q.push(Node(root, 0)); int curLevel = -1; vector<int> a; while(!q.empty()) { Node node = q.front(); if (node.node->left) q.push(Node(node.node->left, node.level + 1)); if (node.node->right) q.push(Node(node.node->right, node.level + 1)); if (curLevel != node.level) { if (curLevel != -1) { if (curLevel % 2 == 1) reverse(a.begin(), a.end()); ret.push_back(a); } a.clear(); curLevel = node.level; } a.push_back(node.node->val); q.pop(); } if (curLevel % 2 == 1) reverse(a.begin(), a.end()); ret.push_back(a); return ret; } };
相关文章推荐
- leetcode - Binary Tree Zigzag Level Order Traversal
- **(leetcode) Binary Tree Zigzag Level Order Traversal (tree)
- LeetCode103 Binary Tree Zigzag Level Order Traversal
- LeetCode(Binary Tree Level Order Traversal, 2,Zigzag)二叉树的层次遍历
- Binary Tree Zigzag Level Order Traversal -- LeetCode
- 103. Binary Tree Zigzag Level Order Traversal LeetCode
- LeetCode[Tree]: Binary Tree Zigzag Level Order Traversal
- LeetCode103—Binary Tree Zigzag Level Order Traversal
- LeetCode之Binary Tree Zigzag Level Order Traversal
- Java for 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]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题解:Binary Tree Zigzag Level Order Traversal
- [Leetcode]Binary Tree Zigzag Level Order Traversal