题目:

class Solution {
public:
void traversal(TreeNode* cur, vector<vector<int>>& result, int depth){ //1.result和depth作为每一层的传入参数 2.&很关键,不能漏 3.depth:层序号
if(!cur) return; //空节点为递归终止条件
if(result.size()==depth) result.push_back(vector<int>()); //每到新的一层,要插入新的空向量来存储该层元素
result[depth].push_back(cur->val); //每层元素插入对应层的向量组
traversal(cur->left, result, depth+1); //向下递归,传入result,同时depth要加一
traversal(cur->right, result, depth+1);
}
vector<vector<int>> levelOrder(TreeNode* root) {
vector<vector<int>> result;
int depth=0;
traversal(root, result, depth);
return result;
}
};
浙公网安备 33010602011771号