C语言实现合并两个链表 含注释
本例子实现将两个链表合并,合并后的链表是第一个链表。通过将第二个链表连接到第一个链表的尾部实现。核心思想是:遍历第一个链表直到尾部,记录尾指针,然后将第二个链表连接到第一个链表尾部指针的 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语言实现合并两个链表 含注释相关推荐
- 合并两个链表,去掉重复元素
最近在学习机器学习的相关算法,写到DbScan算法发现在簇扩展时用到两个邻域中的点会重合,于是尝试了合并两个链表的两个算法. 最初用到这个方法,认为它简单易用.思路是定义一个链表存放合并后的链表lis ...
- 求问R语言 分层抽样 合并两个数据框为什么出现了空集
求问R语言 分层抽样 合并两个数据框为什么出现了空集 rbind计算不了 #分层抽样 mydata <- read.csv("dat.csv") #simsample 简单随 ...
- leetcode刷题记录--数据结构;深度优先搜索算法;二叉树;平衡树;1020. 飞地的数量;1669. 合并两个链表;108. 将有序数组转换为二叉搜索树
1020. 飞地的数量 难度中等131 给你一个大小为 m x n 的二进制矩阵 grid ,其中 0 表示一个海洋单元格.1 表示一个陆地单元格. 一次 移动 是指从一个陆地单元格走到另一个相邻(上 ...
- 面试题:交替合并两个链表
交替合并两个链表给定一个链表 L1: L0->L1->L2->L3->L4....Ln 给定一个链表 L2: Lm->Lm+1->L....LM+n 例如输入链表1 ...
- C语言怎么合并两个有序链表
C语言合并两个有序链表的方法:拼接指定的两个有序链表的所有节点即可.例如两个有序链表分别为[1->2->4]和[1->3->4],合并后的有序链表为[1->1->2 ...
- 每日程序C语言45-连接两个链表
题目: 连接两个链表 程序分析 可以将后面的链表直接接在第一个链表后面,但是注意,删除第二个链表的头结点再进行删除 主要代码 main.c //创建结点类型 typedef struct Node{i ...
- leetcode21 合并两个链表
将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1->2- ...
- LeetCode简单题之合并两个链表
题目 给你两个链表 list1 和 list2 ,它们包含的元素分别为 n 个和 m 个. 请你将 list1 中下标从 a 到 b 的全部节点都删除,并将list2 接在被删除节点的位置. 下图中蓝 ...
- LeetCode 1669合并两个链表-中等
给你两个链表 list1 和 list2 ,它们包含的元素分别为 n 个和 m 个. 请你将 list1 中第 a 个节点到第 b 个节点删除,并将list2 接在被删除节点的位置. 下图中蓝色边和节 ...
最新文章
- java观察者模式_Java设计模式之观察者模式详解
- 入门SAP PP的学习流程
- Android HTTP POST上传
- 聊一聊我自己的从业经历和感悟
- Qt creator5.7 OpenCV249之高斯滤波(含源码下载)
- RAC 安装完成后 节点间通信不依赖于SSH
- ip变更 mysql无法启动_ubuntu mysql 更改IP导致mysql无法启动
- Java Swing Mysql学生成绩管理系统
- PID参数整定——Z-N方法
- Maven3.8.5安装与配置
- error “download token not specified“
- 前端 关于汇率的计算
- dell idrac 复位_重置DELL R630 iDRAC访问密码
- 谷歌退出将会给中国互联网带来的10个变化
- 关于LyfUpload 错误 #x27;80020009#x27; 下标越界的错误,还请大侠们帮帮忙!!!
- 三大门派var,const,let之间的纠纷
- 10.6 自注意力和位置编码
- 商业计划书如何吸引投资人
- ubuntu内存不足1G解决办法
- HTML网页设计基础期末作业——仿Coco线上订奶茶饮料网站设计与实现6个页面(HTML+CSS+JavaScript)...
热门文章
- python必备基础代码-Python基础练习之用户登录实现代码分享
- python3.7.2安装步骤-python安装升级详细步骤 Python2 升级 Python3
- python在财务中的应用-Python用于财务工作培训
- 小米电视4A核心技术之语音识别浅析
- 基于DTW和HMM算法的语音识别系统对比研究-毕业小结
- img src请求后台值值能判断_MVC中根据后台绝对路径读取图片并显示在IMG中
- 本地apk安装是什么意思_Sony电视安装第三方播放器
- 服务器跟域名解析失效,dns根域名解析失败有什么影响
- Intellij IDEA 中的 Debug 控制台输出窗口消失
- mybatis-generator