原题链接
题目的大意是给定两个升序单链表,合并成要给链表,合并后仍然升序,题目要求实现的是mergelist()
函数。
数据结构中讲归并排序的链表实现时,其中的一个步骤就是合并链表。
程序
#include <stdio.h>
#include <stdlib.h>
struct ListNode {
int data;
struct ListNode *next;
};
struct ListNode *createlist(); /*裁判实现,细节不表*/
struct ListNode *mergelists(struct ListNode *list1, struct ListNode *list2);
void printlist( struct ListNode *head )
{
struct ListNode *p = head;
while (p) {
printf("%d ", p->data);
p = p->next;
}
printf("\n");