简单单链表合并
代码段:
1 #include "stdafx.h" 2 #include<stdio.h> 3 #include<stdlib.h> 4 5 6 //节点结构体 7 typedef struct LNode 8 { 9 int data; 10 struct LNode *next; 11 }; 12 13 14 //创建一个空链表 15 LNode* CreateEmptyList() 16 { 17 return NULL; 18 } 19 20 //添加头节点 21 LNode* CreateListHead(LNode *ListHead,int data) 22 { 23 ListHead = (LNode *)malloc(sizeof(LNode)); 24 ListHead->data = data; 25 ListHead->next = NULL; 26 return ListHead; 27 } 28 29 //在链表添加节点 30 LNode* AddNode(LNode *List,int data) 31 { 32 List->next = (LNode *)malloc(sizeof(LNode)); 33 List = (LNode *)List->next; 34 List->data = data; 35 List->next = NULL; 36 return List; 37 } 38 39 40 int main() 41 { 42 int data1 = 0; 43 int count = 0; 44 int sum = 0; 45 int i = 0; 46 LNode *Temp = NULL; 47 LNode *List1 = CreateEmptyList(); 48 LNode *List2 = CreateEmptyList(); 49 printf("链表1的长度:"); 50 scanf("%d",&count); 51 sum +=count; 52 printf("输入链表1的值:"); 53 54 for (i = 0 ;i<count;i++) 55 { 56 //scanf("%d",&data1); 57 data1 = rand(); 58 if (List1 == NULL) 59 { 60 List1 = CreateListHead(List1,data1); 61 Temp = List1; 62 } 63 else 64 { 65 66 Temp = AddNode(Temp,data1); 67 } 68 } 69 70 71 printf("链表2的长度:"); 72 scanf("%d",&count); 73 sum +=count; 74 printf("输入链表1的值:"); 75 76 for (i = 0 ;i<count;i++) 77 { 78 scanf("%d",&data1); 79 if (List2 == NULL) 80 { 81 List2 = CreateListHead(List2,data1); 82 Temp = List2; 83 } 84 else 85 { 86 87 Temp = AddNode(Temp,data1); 88 } 89 } 90 91 Temp = List1; //寻找中间变量,将链表1的值赋值给中间变量 92 while(Temp->next)//当找到链表的最后一个节点就跳出循环 93 { 94 Temp = Temp->next;//将中间节点的下一个指针指向中间变量 95 }//寻找链表1 的最后一个节点 96 Temp->next =List2;//链表2的头指针赋值给链表1的最后一个元素 97 //链表1的最后一个节点的指针指向链表2的头指针 98 99 100 Temp = List1; 101 for(i=0;i<sum;i++) 102 { 103 printf("%d ",Temp->data); 104 Temp =(LNode *) Temp->next; 105 106 } 107 108 109 system("pause"); 110 return 0; 111 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通