Binary Tree Zigzag Level Order Traversal LeetCode solution in C++
1class Solution {2public:3vector<vector<int>> zigzagLevelOrder(TreeNode *root) {4vector<vector<int>> ans;5if (!root) return ans;6vector<int> r;7queue<TreeNode *> q;8int count = 1;9q.push(root);10q.push(NULL);11while (1) {12if (q.front() == NULL) {13q.pop();14if (count % 2 == 0) reverse(r.begin(), r.end());15ans.push_back(r);16if (q.empty()) return ans;17q.push(NULL);18r.resize(0);19count++;20continue;21}2223r.push_back((q.front())->val);24if (q.front()->left) q.push((q.front())->left);25if (q.front()->right) q.push((q.front())->right);2627q.pop();28}29return ans;30}31};