Leetcode 429. N叉树的层序遍历
题目
给定一个 N 叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。
测试样例
例如,给定一个 3叉树 :
返回其层序遍历:
[
[1],
[3,2,4],
[5,6]
]
说明:
- 树的深度不会超过 1000。
- 树的节点总数不会超过 5000。
题解
dfs深搜
深搜的过程,用一个遍历记录当前的层数,如果是第一次出现,出现先创建一个数组。详细过程见代码
代码
vector<vector<int>> ans;
void search(Node* root,int level){
if(root == NULL) return;
if(ans.size() <= level) ans.push_back({}); //当前层数第一次出现
ans[level].push_back(root->val);
int n = root->children.size();
for(int i=0; i<n; i++){
search(root->children[i],level+1);
}
}
vector<vector<int>> levelOrder(Node* root) {
search(root,0);
return ans;
}
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/n-ary-tree-level-order-traversal
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。