/** * 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; } };