/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * }; */ class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param pRoot 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,int h,vector <vector <int>>&ans) { if(root) { answer(root->left,h+1,ans); ans[h].push_back(root->val); answer(root->right,h+1,ans); } } vector<vector<int> > Print(TreeNode* pRoot) { int i=0; int h=height(pRoot); vector <vector <int>> ans(h); answer(pRoot,i,ans); for(i=0;i<h;i++) { if(i%2) { reverse(ans[i].begin(),ans[i].end()); } } return ans; } };