/**
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
class Solution {
public:
/**
*
* @param root TreeNode类
* @return int整型vector<vector<>>
*/
void func(int level, TreeNode* node, vector<vector<int> >& out_data)
{
if(!node)return;
if(out_data.size() == level)
{
out_data.resize(level+1);
}
out_data[level].push_back(node->val);
if(node->left)
{
func(level + 1, node->left, out_data);
}
if(node->right)
{
func(level + 1, node->right, out_data);
}
}
vector<vector<int> > levelOrder(TreeNode* root)
{
vector<vector<int> > vecData;
func(0, root, vecData);
return vecData;
}
};