递归

vector<vector<int>> levelOrder(TreeNode* root) {

vector<vector<int>> ret;

levelOrderHelper(root,1,ret);

return ret;

}

void levelOrderHelper(TreeNode* root, int level,vector<vector<int>> &ret){

if(!root)

return;

if(ret.size()<level){

ret.push_back(vector<int>());

}

ret[level-1].push_back(root->val);

if(root->left) levelOrderHelper(root->left,level+1,ret);

if(root->right) levelOrderHelper(root->right,level+1,ret);

}

Last updated

Was this helpful?