/// https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/ /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: vector> zigzagLevelOrder(TreeNode* root) { vector > result; if(root==NULL) return result; queue q; q.push(root); bool leftToRight = true; while(!q.empty()){ int size = q.size(); /// how many nodes are present at this level vector row(size); for(int i=0;ival; if(f->left) q.push(f->left); if(f->right) q.push(f->right); } /// after current level leftToRight = !leftToRight; result.push_back(row); } return result; } };