Binary Tree Zigzag Level Order Traversal
昨天面试微软又考到层次遍历。添上leetcode此题代码
class Solution { public: vector<vector<int> > zigzagLevelOrder(TreeNode *root) { vector<vector<int>>result; if(root==NULL)return result; vector<int>levelresult; vector<TreeNode *>v; int last=0; int front=0; int rear=0; TreeNode *p=root; v.push_back(p); int level=0; while(front<=rear) { p=v[front++]; levelresult.push_back(p->val); if(p->left){v.push_back(p->left);rear++;} if(p->right){v.push_back(p->right);rear++;} if(front>last) { level++; last=rear; result.push_back(levelresult); levelresult.clear(); } } for(int i=0;i<result.size();i++) { if(i%2==1) reverse(result[i].begin(),result[i].end()); } return result; } };