通过混合项目递归复制两个链接列表

我需要递归复制两个链表并返回一个新列表.我需要复制它们的方法是list1中的一个元素,list2中的一个元素.如果一个列表比另一个列表短,则只需附加较长列表的其余元素.

输入示例:list1 = [1,2,3],list2 = [4,5,6,7];结果= [1,4,2,5,3,6,7];

这是我有缺陷的(现在正确的)代码:

node *copy(node *list1, node *list2)
{
    if (list1 == NULL && list2 == NULL) return NULL;

    else if (list1 != NULL && list2 != NULL) {
      node *result;
      result = newnode();

      result->data = list1->data;
      result->next = newnode();
      result->next->data = list2->data;

      result->next->next = copy(list1->next, list2->next);

      return result;
    }
    else if (list1 != NULL && list2 == NULL) {
      node *result; 
      result = newnode();

      result->data = list1->data;
      result->next = copy(list1->next, NULL);

              return result;
    }
    else if (list1 == NULL && list2 != NULL) {
      node *result;
      result = newnode();

      result->data = list2->data;
      result->next = copy(NULL, list2->next);

              return result;
    }           
}

有人能指出我正在犯的错误吗?

编辑:现在它的工作原理.我错过了两个回复陈述.

最佳答案 如果分支,你似乎在底部两个缺少返回语句.

点赞