我正在尝试将两个链接列表的内容复制到一个中,以便一次复制一个元素(来自每个链接列表)。
所以,如果我有:list1 = [1,2,3]
, 和list2 = [4,5,6]
, result = [1,4,2,5,3,6]
。如果一个列表比另一个短,则剩余节点将附加到结果列表的末尾。
这是我的代码,它有一个小错误:它在最后创建了一个额外的节点(我不想要)。
node *list_copy(node *list1, node *list2)
{
node *mylist = newnode();
node *head = mylist;
while (list1 != NULL || list2 != NULL) {
if (list1 != NULL) {
mylist->data = list1->data;
mylist->next = newnode();
mylist = mylist->next;
list1 = list1->next;
}
if (list2 != NULL) {
mylist->data = list2->data;
mylist->next = newnode();
mylist = mylist->next;
list2 = list2->next;
}
}
return head;
}
如何修改它以使其不创建最后一个节点?
示例输入:
List1 = [1,2,3], List2 = [1,2,3,4,5,6], Result = [1,1,2,2,3,3,4,5,6,0];