数据结构之“合并两个有序链表”

server/2024/10/22 8:13:41/

一、后插法

1、定义:

通过将新节点逐个插入到链表的尾部来创建链表

2、特点:

(1)每次申请一个新节点,读入相应的数据元素值
(2)为了使新节点能够插入到表尾,需要增加一个尾指针 r 指向链表的尾结点

3、图示:

在这里插入图片描述

4、代码实现:

//----------单链表的存储结构----------
typedef struct LNode{ElemType data;struct LNode *next;
}LNode, *LinkList;
void CreateList_R(LinkList &L, int n)
{L = new LNode;L->next = NULL;r = L;for(i=0; i<n; i++){p = new LNode;cin>>p->data;p->next = NULL;r->next = p;r = p;}
}

二、“合并两个有序链表

1、题目:

在这里插入图片描述

2、解题思路:

此题可以先创建一个空链表,然后依次从两个有序链表中选取最小的进行尾插操作进行合并

3、代码实现:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/
struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2) {if(list1 == NULL)return list2;if( list2 == NULL)return list1;struct ListNode* p = (struct ListNode*)malloc(sizeof(struct ListNode));p->next = NULL;struct ListNode* q = (struct ListNode*)malloc(sizeof(struct ListNode));q->next = NULL;q = p;while(list1 && list2){struct ListNode* l1 = list1;struct ListNode* l2 = list2;if(l1->val >= l2->val){list2 = list2->next;p->next = l2;p = p->next;}else{list1 = list1->next;p->next  =l1;p = p->next;}}if(list1)p->next = list1;if(list2)p->next = list2;return q->next;
}

4、测试用例:

在这里插入图片描述

微语:You want this life, these choise are necessary.
(最近在看《穿普拉达的女王》,里面的女性太帅了!!)


http://www.ppmy.cn/server/30848.html

相关文章

如何从0开始创建一个python+Pdm+Django项目

1、安装pdm pip3.10 install pdm或者 pip install pdm2、初始化python项目的配置和环境 pdm init3、在项目中添加 Django 框架 pdm add django4、当前目录创建一个叫做Tesla的Django项目 pdm run django-admin startproject Tesla ./如图 5、编辑pyproject.toml文件&#xff…

笔记-mathtype公式在PDF或打印出来显示不全

原文中的公式&#xff1a; 纸质版打印出来的公式有缺失 问题描述&#xff1a;mathtype公式编辑器所编辑的公式转成PDF或者打印出来有缺失 以下是解决方法的具体描述。 目录 一、准备工作二、操作步骤 一、准备工作 1、工具&#xff1a;mathtype、微软word 二、操作步骤 …

React 之 Suspense

Suspense Suspense 组件我们并不陌生&#xff0c;中文名可以理解为暂停or悬停 , 在 React16 中我们通常在路由懒加载中配合 Lazy 组件一起使用 &#xff0c;当然这也是官方早起版本推荐的唯一用法。 那它暂停了什么&#xff1f; 进行异步网络请求&#xff0c;然后再拿到请求…

C++ 动态内存

C程序的内存映射像 C程序中变量的内存分配方式 从静态存储区分配 全局变量和静态变量 在栈(stack&#xff09;上创建 存放函数参数值&#xff0c;局部变量值等。 在执行函数调用时&#xff0c;系统在栈上为函数内的句柄变量及形参分配内存&#xff0c;函数执行结束时&#xff0…

Rust 字符串基本使用教程及代码演示

文章目录 一、基本使用教程1、字符串类型String&str 2、创建字符串创建String创建&str 3、字符串操作索引切片格式化字符串比较 4、字符串和集合5、字符串的错误处理6、参考链接 二、代码演示1、代码演示2、执行结果 一、基本使用教程 在Rust中&#xff0c;字符串是编…

数据结构与算法-单向环形链表与约瑟夫问题

1.简介 单向环形链表&#xff0c;闭合的形成一个环。 单向环形链表的一个应用场景是约瑟夫问题。 约瑟夫问题为&#xff1a;设编号为1&#xff0c;2&#xff0c;…&#xff0c;n的n个人围坐一圈&#xff0c;约定编号为k(1<k<n)的人从1开始报数&#xff0c;数到m的那个人…

mysql主从同步

在主服务器上 1.配置my.cnf [mysqld] log-binmysql-bin server-id1 #日志超过3天自动过期 expire_logs_days 30 #同步student库 binlog-do-dbstudent #不同步系统库 binlog-ignore-dbmysql #bin-log日志文件格式&#xff0c;设置为MIXED可以防止主键重复 binlog_formatmixed…

android 分区存储(沙盒存储)适配总结

目录 一、分区存储概念 1.外部存储分类 2.分区存储如何影响文件访问 二、分区适配方案 1. 应用分区存储的文件访问规定 (1).应用专属目录--私有目录 (2).共享目录文件--公有目录 2.MediaStore API介绍 3.Storage Access Framework介绍 三、所有文件访问权限 四、总结…