struct Node {
char*label;
struct Node *children;
};
我正在尝试遍历树并根据当前深度打印节点的值/标签(如上定义)。
输出:
我的代码:
void recurse_helper(struct Node **root, int level, int max_level){
if (level > max_level){
return;
}
struct Node* r = *root;
if(r->children == NULL){
}
else{
struct Node *current = r->children;
}
void traverse_and_print(struct Node* root, max_dep){
recurse_helper(&root, 0,max_dep);
}
我的代码似乎无法正常工作。有没有人有更好的递归解决方案,或者有人可以建议如何更改我当前的实现?
这似乎可以解决问题。
void printTree(Node *root, int level) {
if (root == NULL)
return;
for (int i = 0; i < level; i++) {
printf(" ");
}
printf("%s\n", root->data);
for (Node *child = root->children; child != NULL; child = child->next_sib) {
printTree(child, level + 1);
}
}
它没有实现max_level,我将其留给您进行广告。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句