/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * }; */ class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param root TreeNode类 * @return int整型vector<vector<>> */ int height(TreeNode*root) { if(root) { int m=height(root->left); int n=height(root->right); return max(m,n)+1; } return 0; } void answer(TreeNode*root,vector <vector <int>>&ans,int h) { if(root) { answer(root->left,ans,h+1); ans[h].push_back(root->val); answer(root->right,ans,h+1); } } vector<vector<int> > levelOrder(TreeNode* root) { int i=0; int h=height(root); vector <vector <int>>ans(h); answer(root,ans,i); return ans; } };