您的位置:首页 > 其它

103. Binary Tree Zigzag Level Order Traversal

2016-11-04 21:56 204 查看


这道题可以借鉴102的层序遍历,再加一个变量计算树的层数,如果为偶数则翻转。

class Solution {
public:
vector<vector<int>> zigzagLevelOrder(TreeNode* root)
{
vector<vector<int> >ret;
if(!root)
return ret;
queue<TreeNode*>qtree;
qtree.push(root);
qtree.push(NULL);
int count=1;
vector<int>num;
while(!qtree.empty())
{
TreeNode*temp=qtree.front();
qtree.pop();
if(temp==NULL)
{
if(count%2==0)
reverse(num.begin(),num.end());
ret.push_back(num);
num.clear();
if(qtree.size()>0)
{
count++;
qtree.push(NULL);
}
else
break;
}
else
{
num.push_back(temp->val);
if(temp->left)
qtree.push(temp->left);
if(temp->right)
qtree.push(temp->right);
}
}
return ret;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: