題目:
https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/description/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| #define MAXN 2005
TreeNode* q[MAXN];
class Solution { public: vector<vector<int>> zigzagLevelOrder(TreeNode* root) { vector<vector<int>> ans; if(root == nullptr) return ans; int l = 0, r = 0; q[r++] = root; bool reverse = false;
while(l < r){ int size = r-l; vector<int> list;
for(int i = reverse ? r-1 : l, j = reverse ? -1 : 1, k=0; k<size; i+=j, ++k){ list.push_back(q[i]->val); }
for(int i=0; i<size; ++i){ TreeNode* curr = q[l++]; if(curr->left != nullptr) q[r++] = curr->left; if(curr->right != nullptr) q[r++] = curr->right; }
ans.push_back(list); reverse = !reverse; } return ans; } };
|