我很难弄清楚如何将元素添加到链接列表中节点内的列表属性中,特别是如何设置指针。
我有一个像这样的结构:
typedef struct Node
{
int value;
struct Node *elements;
struct Node *next;
}Node;
Node *mainlist;
Node *elemlist;
我希望能够在 mainlist 中找到一个特定的节点,并将 elemlist 中的所有元素添加到该节点 *elements 中。
我有这个函数,它接受主列表和要检查的值:
void add_elements(Node *mainlist, int value)
{
Node *ptr = mainlist;
Node *ptr2 = elemlist;
while(ptr != NULL)
{
if(value == ptr->value)
{
while(ptr2 != NULL)
{
Node *newNode = malloc(sizeof(Node));
newNode->value = ptr2->value;
newNode->next = ptr->elements;
ptr->elements = newNode;
ptr2 = ptr2->next;
}
}
ptr = ptr->next;
}
}
我遇到了段错误,因此显然没有将 elemlist 中的元素添加到节点的元素中。我相当确定我的指针做错了。
对此的任何帮助将不胜感激。谢谢!
最佳答案
我认为:
Node->value = ptr2->value;
应该是这样的:
newNode->value = ptr2->value;
关于C - 添加到列表节点内的链接列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13044888/