/*
* 算法思想:
* 根据当前节点的depth(从0开始),按照先序遍历树;
* 两层vector<vector<int>>, 从外到里面第一层的index为depth,第二层为从左到右访问同一层的树节点。
*/
class Solution {
public:
void _levelOrder(vector<vector<int>> *ret, Node* root, int depth) {
int i,len;
if(!root) return ;
len = root->children.size();
if(ret->size() <= depth){
vector<int> v;
ret->push_back(v);
}
(*ret)[depth].push_back(root->val);
for(i=0; i<len; i++){
_levelOrder(ret, root->children[i], depth+1);
}
}
vector<vector<int>> levelOrder(Node* root) {
vector<vector<int>> v;
_levelOrder(&v, root, 0);
return v;
}
};
leetcode-429. N叉树的层序遍历-C语言
最新推荐文章于 2024-12-13 22:15:33 发布