gpt4 book ai didi

从特定深度的二叉树元素创建链表

转载 作者:太空宇宙 更新时间:2023-11-04 02:41:38 25 4
gpt4 key购买 nike

我正在尝试构建一个链表,其中的元素处于一定深度

我想到了这个:

void nivel(ABin a, int k, SList *l, int level){
if (!a) return;
if(k == level){
SList n = (SList)malloc(sizeof(struct slist));
n->value = a->value;
n->next=(*l);
(*l) = n;
return;
}else{
nivel(a->left, k, l, level+1);
nivel(a->right, k, l, level+1);
}
}

确实有效

但是练习要求使用这个标题:SList nivel (ABin a, int n)

我尝试过空虚练习。但是无法弄清楚如何制作返回链接列表的。

来自结构和二叉树的数据:

typedef struct slist
{
int value;
struct slist* next;
} *SList;

typedef struct arvbin* ABin;
typedef struct arvbin
{
int value;
ABin right;
ABin left;
} arvb;

编辑:

<----------------在练习中使用页眉------------>//感谢 Politank-Z

SList nivel_(ABin a, int k){
SList *l;

nivel(a, k, l, 1);

return l;
}


void nivel(ABin a, int k, SList *l, int level){
if (!a) return;
if(k == level){
SList n = (SList)malloc(sizeof(struct slist));
n->value = a->value;
n->next=(*l);
(*l) = n;
return;
}else{
nivel(a->left, k, l, level+1);
nivel(a->right, k, l, level+1);
}
}

最佳答案

关于您在原型(prototype)方面遇到的困难:局限于不满足您的实现需求的函数原型(prototype)是很常见的。在这种情况下,通常更容易从原型(prototype)函数中调用您的函数,然后将您的功能硬塞进原型(prototype)中。

关于从特定深度的二叉树元素创建链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31282495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com