/**
* Definition for binary tree
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
vector<vector<int> > levelOrder(TreeNode *root)
{
/*
vector<vector<int>> result;
if (root == NULL)
return result;
vector<int> cur;
int count=1;
int level=0;
queue<TreeNode*> queuedata;
queuedata.push(root);
while(!queuedata.empty())
{
for (int i = 0; i < count; ++i)
{
TreeNode* temp = queuedata.front();
queuedata.pop();
cur.push_back(temp->val);
if (temp->left != NULL)
{
queuedata.push(temp->left);
++level;
}
if (temp->right != NULL)
{
queuedata.push(temp->right);
++level;
}
}
count = level;
result.push_back(cur);
cur.clear();
level=0;
}
return result;
*/
vector<vector<int>> result;
vector<int> cur;
if(!root)
return result;
queue<TreeNode*> q;
q.push(root);
int count=1;
while(!q.empty())
{
TreeNode* temp=q.front();
q.pop();
--count;
cur.push_back(temp->val);
if(temp->left)
{
q.push(temp->left);
}
if(temp->right)
{
q.push(temp->right);
}
if(count==0)
{
result.push_back(cur);
count=q.size();
cur.clear();
}
}
return result;
}
};
Binary Tree Level Order Traversal
最新推荐文章于 2022-02-20 23:20:19 发布