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;
}
};
浙公网安备 33010602011771号