您的位置:首页 > 其它

leetcode Binary Tree Level Order Traversal II

2014-08-19 15:44 218 查看
开辟两个堆, 利用BFS 来得到结果,最后注意题目要求的顺序。

代码

class Solution
{
public:
vector<vector<int> > levelOrderBottom(TreeNode *root)
{
vector<vector<int> > result;

if(root==NULL)
return result;

queue<TreeNode*> queue_pop, queue_push;
queue_pop.push(root);

vector<int> level;

while(!queue_pop.empty())
{
TreeNode *tempNode;
tempNode = queue_pop.front();
level.push_back(tempNode->val);
queue_pop.pop();

if(tempNode->left)
queue_push.push(tempNode->left);
if(tempNode->right)
queue_push.push(tempNode->right);

if(queue_pop.empty())
{
result.push_back(level);
level.clear();
swap(queue_push, queue_pop);
}

}
//反转得到最终结果
reverse(result.begin(), result.end());
return result;
}

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: