您的位置:首页 > 其它

[LeetCode] Binary Tree Level Order Traversal

2014-07-07 20:28 183 查看
vector<vector<int> > levelOrder(TreeNode *root) {
vector<TreeNode*> last_level_node;
vector<vector<int>> val_in_level;
if (root == NULL)
{
return val_in_level;
}
last_level_node.push_back(root);

vector<TreeNode*> cur_level_node;
do
{
cur_level_node.clear();
vector<int> val;
for (int i = 0; i < last_level_node.size(); i++)
{
TreeNode* cur_node = last_level_node[i];
TreeNode* left_node = NULL;
TreeNode* right_node = NULL;
if(cur_node != NULL)
{
left_node = cur_node->left;
right_node = cur_node->right;
val.push_back(cur_node->val);
if (left_node != NULL)
{
cur_level_node.push_back(left_node);
}
if (right_node != NULL)
{
cur_level_node.push_back(right_node);
}
}
}
val_in_level.push_back(val);
last_level_node = cur_level_node;
}while (!cur_level_node.empty());
return val_in_level;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: