我正在尝试复制现有列表,然后将它们连接在一起。我使用了copy函数,它返回一个指向新列表的指针。我很难将第一个列表的最后一个指针指向另一个列表中的第一个节点。
Node *concatenates(Node *list1, Node *list2) {
Node *n5;
Node *n2;
n5=copy(list1);
n2=copy(list2);
while(n5!=NULL)
n5=n5->next;
n5->next=n2; /* having trouble with this part */
return n5;
}
答案 0 :(得分:0)
这里有一些问题。我将解决你的段错误:
while(n5!=NULL)
n5=n5->next;
n5->next=n2
在while循环之后,n5
保证为NULL
,因此n5->next
未定义并将产生seg错误。这个while循环将阻止seg错误(但仍然无法工作):
while(n5->next!=NULL)
n5=n5->next;
n5->next=n2
你的另一个明显的问题是,你正在抓住list1
的头,将其放入n5
,然后用while循环抛出整个列表,直到n5
为尾{列表。您需要解决这个问题,否则您将无法返回您期望的内容。