本例子实现将两个链表合并,合并后的链表是第一个链表。通过将第二个链表连接到第一个链表的尾部实现。核心思想是:遍历第一个链表直到尾部,记录尾指针,然后将第二个链表连接到第一个链表尾部指针的 next 指针上,从而实现连接两个链表。请看代码:

/*合并两个链表*/
#include <stdio.h>
#include <stdlib.h>//声明struct student类型
typedef struct student{int num;struct student * next;
}LNode,*LinkList;//函数create(),实现创建一个链表,返回链表的头指针
LinkList create(void){LinkList head;LNode *p1,*p2;char a;head=NULL;a=getchar();while(a!='\n'){  //输入链表的值,空格隔开,回车结束p1=(LNode *)malloc(sizeof(LNode));  //p1为新建指针p1->num=a;  //p1数据域赋值if(head==NULL){head=p1;}else{p2->next=p1;  //p2指向链表尾部}p2=p1;a=getchar();}p2->next=NULL;  //尾部的指针的next指针置空return head;
}//函数coalition(),实现将创建的两个链表合并
LinkList coalition(LinkList L1,LinkList L2){LNode * temp;if(L1==NULL) return L2;else if(L2==NULL) return L1;else{for(temp=L1;temp->next!=NULL;temp=temp->next); //遍历链表L1,并到达L1尾部temp->next=L2;  //将L2链接到L1尾部return L1;}
}int main()
{LinkList L1,L2,L3;printf("请输入两个链表:\n");printf("第一个链表是:\n");L1=create();printf("第二个链表是:\n");L2=create();coalition(L1,L2);  //连接两个链表printf("合并后的链表是:\n");while(L1){printf("%c",L1->num);L1=L1->next;}return 0;
}

------相信我,坚持就是胜利------

C语言实现合并两个链表 含注释相关推荐

  1. 合并两个链表,去掉重复元素

    最近在学习机器学习的相关算法,写到DbScan算法发现在簇扩展时用到两个邻域中的点会重合,于是尝试了合并两个链表的两个算法. 最初用到这个方法,认为它简单易用.思路是定义一个链表存放合并后的链表lis ...

  2. 求问R语言 分层抽样 合并两个数据框为什么出现了空集

    求问R语言 分层抽样 合并两个数据框为什么出现了空集 rbind计算不了 #分层抽样 mydata <- read.csv("dat.csv") #simsample 简单随 ...

  3. leetcode刷题记录--数据结构;深度优先搜索算法;二叉树;平衡树;1020. 飞地的数量;1669. 合并两个链表;108. 将有序数组转换为二叉搜索树

    1020. 飞地的数量 难度中等131 给你一个大小为 m x n 的二进制矩阵 grid ,其中 0 表示一个海洋单元格.1 表示一个陆地单元格. 一次 移动 是指从一个陆地单元格走到另一个相邻(上 ...

  4. 面试题:交替合并两个链表

    交替合并两个链表给定一个链表 L1: L0->L1->L2->L3->L4....Ln 给定一个链表 L2: Lm->Lm+1->L....LM+n 例如输入链表1 ...

  5. C语言怎么合并两个有序链表

    C语言合并两个有序链表的方法:拼接指定的两个有序链表的所有节点即可.例如两个有序链表分别为[1->2->4]和[1->3->4],合并后的有序链表为[1->1->2 ...

  6. 每日程序C语言45-连接两个链表

    题目: 连接两个链表 程序分析 可以将后面的链表直接接在第一个链表后面,但是注意,删除第二个链表的头结点再进行删除 主要代码 main.c //创建结点类型 typedef struct Node{i ...

  7. leetcode21 合并两个链表

    将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1->2- ...

  8. LeetCode简单题之合并两个链表

    题目 给你两个链表 list1 和 list2 ,它们包含的元素分别为 n 个和 m 个. 请你将 list1 中下标从 a 到 b 的全部节点都删除,并将list2 接在被删除节点的位置. 下图中蓝 ...

  9. LeetCode 1669合并两个链表-中等

    给你两个链表 list1 和 list2 ,它们包含的元素分别为 n 个和 m 个. 请你将 list1 中第 a 个节点到第 b 个节点删除,并将list2 接在被删除节点的位置. 下图中蓝色边和节 ...

最新文章

  1. java观察者模式_Java设计模式之观察者模式详解
  2. 入门SAP PP的学习流程
  3. Android HTTP POST上传
  4. 聊一聊我自己的从业经历和感悟
  5. Qt creator5.7 OpenCV249之高斯滤波(含源码下载)
  6. RAC 安装完成后 节点间通信不依赖于SSH
  7. ip变更 mysql无法启动_ubuntu mysql 更改IP导致mysql无法启动
  8. Java Swing Mysql学生成绩管理系统
  9. PID参数整定——Z-N方法
  10. Maven3.8.5安装与配置
  11. error “download token not specified“
  12. 前端 关于汇率的计算
  13. dell idrac 复位_重置DELL R630 iDRAC访问密码
  14. 谷歌退出将会给中国互联网带来的10个变化
  15. 关于LyfUpload 错误 #x27;80020009#x27; 下标越界的错误,还请大侠们帮帮忙!!!
  16. 三大门派var,const,let之间的纠纷
  17. 10.6 自注意力和位置编码
  18. 商业计划书如何吸引投资人
  19. ubuntu内存不足1G解决办法
  20. HTML网页设计基础期末作业——仿Coco线上订奶茶饮料网站设计与实现6个页面(HTML+CSS+JavaScript)...

热门文章

  1. python必备基础代码-Python基础练习之用户登录实现代码分享
  2. python3.7.2安装步骤-python安装升级详细步骤 Python2 升级 Python3
  3. python在财务中的应用-Python用于财务工作培训
  4. 小米电视4A核心技术之语音识别浅析
  5. 基于DTW和HMM算法的语音识别系统对比研究-毕业小结
  6. img src请求后台值值能判断_MVC中根据后台绝对路径读取图片并显示在IMG中
  7. 本地apk安装是什么意思_Sony电视安装第三方播放器
  8. 服务器跟域名解析失效,dns根域名解析失败有什么影响
  9. Intellij IDEA 中的 Debug 控制台输出窗口消失
  10. mybatis-generator