码迷,mamicode.com
首页 > 编程语言 > 详细

合并两个排序列表——剑指offer

时间:2017-08-18 23:45:15      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:技术   尾插法   结束   int   alt   sizeof   creat   clu   node   

题目:输入两个递增排序的列表,合并这两个链表使新的链表结点按照递增排序。

代码:

技术分享
 1 #include<stdio.h>
 2 #include"malloc.h"
 3 typedef struct node
 4 {
 5     struct node *next;
 6     int data;
 7 }*ListNode;
 8 
 9 //尾插法创建链表(不带头结点)
10 ListNode creatrList()
11 {
12     ListNode p = (ListNode)malloc(sizeof(ListNode));
13     ListNode s, q;
14     p->next = NULL;
15     q = p;
16     int x = 0;
17     scanf_s("%d", &x);
18     while (x != -1)
19     {
20         s = (ListNode)malloc(sizeof(ListNode));
21         s->next = NULL;
22         p->data = x;
23         p->next = s;
24         p = s;
25         scanf_s("%d", &x);
26     }
27     return q;
28 }
29 //合并两个链表
30 ListNode Merge(ListNode AList,ListNode BList)
31 {
32     if (AList->next == NULL)
33         return BList;
34     else if (BList->next == NULL)
35         return AList;
36     ListNode CList = NULL;
37     if (AList->data < BList->data)
38     {
39         CList = AList;
40          CList->next = Merge(AList->next,BList);
41     }
42     else
43     {
44         CList = BList;
45         CList->next = Merge(AList, BList->next);
46     }
47     return CList;
48 }
49 
50 int main()
51 {
52     ListNode AList, BList,CList;
53     printf("创建A链表,以-1结束:");
54     AList = creatrList();
55     printf("创建B链表,以-1结束:");
56     BList = creatrList();
57     CList = Merge(AList, BList);
58     printf("合并后的列表为:");
59     while (CList->next!=NULL)
60     {
61         printf("%3d",CList->data);
62         CList = CList->next;
63     }
64     printf("\n");
65     return 0;
66 
67 }
68 /*
69 创建A链表,以-1结束:1 2 3 5 6 7 -1
70 创建B链表,以-1结束:8 9 11 14 16 19 21 23 25 27 -1
71 合并后的列表为:  1  2  3  5  6  7  8  9 11 14 16 19 21 23 25 27
72 请按任意键继续. . .
73 
74 创建A链表,以-1结束:-1
75 创建B链表,以-1结束:1 2 3 4 5 6 7 8 -1
76 合并后的列表为:  1  2  3  4  5  6  7  8
77 请按任意键继续. . .
78 
79 创建A链表,以-1结束:1 2 3 4 5 6 7 8 -1
80 创建B链表,以-1结束:1 2 3 4 5 6 7 8 -1
81 合并后的列表为:  1  1  2  2  3  3  4  4  5  5  6  6  7  7  8  8
82 请按任意键继续. . .
83 
84 
85 */
View Code

 

合并两个排序列表——剑指offer

标签:技术   尾插法   结束   int   alt   sizeof   creat   clu   node   

原文地址:http://www.cnblogs.com/xyzyj/p/7392395.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!