您的位置:首页 > Web前端

LintCode-剑指Offer-(71)二叉树的锯齿形层次遍历

2015-12-05 13:40 471 查看
class Solution {
/**
* @param root: The root of binary tree.
* @return: A list of lists of integer include
*          the zigzag level order traversal of its nodes' values
*/
public:
vector<vector<int>> zigzagLevelOrder(TreeNode *root) {
// write your code here
queue<TreeNode*> q;
q.push(NULL);
q.push(root);
bool needreverse = false;
vector<vector<int>> r;
if (root==NULL)return r;
int level = -1;
while (q.size()!=1){
if (q.front()==NULL){
r.push_back(vector<int>());
level++;
q.pop();
q.push(NULL);
}
else{
r[level].push_back(q.front()->val);
if (q.front()->left!=NULL)q.push(q.front()->left);
if (q.front()->right!=NULL)q.push(q.front()->right);
q.pop();
}
}
for (int i = 0;i<r.size();i++){
if (i%2==1)
reverse(r[i].begin(),r[i].end());
}
return r;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: