当前位置: 首页 > news >正文

多个单链表的合成

建立两个非递减有序单链表,然后合并成一个非递增有序的单链表。

注意:建立非递减有序的单链表,需要采用创建单链表的算法

输入格式:

1 9 5 7 3 0

2 8 4 6 0

输出格式:

9 8 7 6 5 4 3 2 1

输入样例:

在这里给出一组输入。例如:

2 8 4 6 3 7 0
-4 5 6 2 3 9 0

输出样例:

在这里给出相应的输出。例如:

9 8 7 6 6 5 4 3 3 2 2 -4

# 定义链表节点类
class Node:def __init__(self, data=None):self.data = dataself.next = None# 定义单向链表类
class LinkedList:def __init__(self):self.head = Node()  # 初始化头结点# 有序插入节点到非递减链表中def insert(self, data):new_node = Node(data)cur = self.head# 找到插入位置: cur.next 为第一个大于 data 的节点while cur.next and cur.next.data < data:cur = cur.nextnew_node.next = cur.nextcur.next = new_node# 合并两个非递减链表,并返回合并后的链表def merge(self, other):merged_list = LinkedList()  # 创建新的合并链表cur1 = self.head.next  # 跳过头结点cur2 = other.head.next  # 跳过头结点# 合并两个链表while cur1 and cur2:if cur1.data <= cur2.data:merged_list.insert(cur1.data)cur1 = cur1.nextelse:merged_list.insert(cur2.data)cur2 = cur2.next# 处理剩余的元素while cur1:merged_list.insert(cur1.data)cur1 = cur1.nextwhile cur2:merged_list.insert(cur2.data)cur2 = cur2.nextreturn merged_list# 反转链表def reverse(self):prev = Nonecur = self.head.next  # 跳过头结点while cur:next_node = cur.next  # 保存下一个节点cur.next = prev  # 反转指针prev = cur  # 移动 prevcur = next_node  # 移动 curself.head.next = prev  # 更新头结点的next指针# 打印链表的所有元素def display(self):cur = self.head.next  # 跳过头结点while cur:print(cur.data, end=" ")cur = cur.nextprint()# 主程序
def main():# 建立第一个链表linked_list1 = LinkedList()input1 = input().split()for num in input1:num = int(num)if num == 0:breaklinked_list1.insert(num)# 建立第二个链表linked_list2 = LinkedList()input2 = input().split()for num in input2:num = int(num)if num == 0:breaklinked_list2.insert(num)# 合并两个有序链表merged_list = linked_list1.merge(linked_list2)# 反转合并后的链表以变为非递增顺序merged_list.reverse()# 打印反转后的链表merged_list.display()# 调用主程序
main()

相关文章:

多个单链表的合成

建立两个非递减有序单链表&#xff0c;然后合并成一个非递增有序的单链表。 注意&#xff1a;建立非递减有序的单链表&#xff0c;需要采用创建单链表的算法 输入格式: 1 9 5 7 3 0 2 8 4 6 0 输出格式: 9 8 7 6 5 4 3 2 1 输入样例: 在这里给出一组输入。例如&#xf…...

『建议收藏』ChatGPT Canvas功能进阶使用指南!

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;专注于分享AI全维度知识&#xff0c;包括但不限于AI科普&#xff0c;AI工…...

Ollama 运行视觉语言模型LLaVA

Ollama的LLaVA&#xff08;大型语言和视觉助手&#xff09;模型集已更新至 1.6 版&#xff0c;支持&#xff1a; 更高的图像分辨率&#xff1a;支持高达 4 倍的像素&#xff0c;使模型能够掌握更多细节。改进的文本识别和推理能力&#xff1a;在附加文档、图表和图表数据集上进…...

gdb 调试 linux 应用程序的技巧介绍

使用 gdb 来调试 Linux 应用程序时&#xff0c;可以显著提高开发和调试的效率。gdb&#xff08;GNU 调试器&#xff09;是一款功能强大的调试工具&#xff0c;适用于调试各类 C、C 程序。它允许我们在运行程序时检查其状态&#xff0c;设置断点&#xff0c;跟踪变量值的变化&am…...

Java项目实战II基于Java+Spring Boot+MySQL的房产销售系统(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者 一、前言 随着房地产市场的蓬勃发展&#xff0c;房产销售业务日益复杂&#xff0c;传统的手工管理方式已难以满…...

aws(学习笔记第一课) AWS CLI,创建ec2 server以及drawio进行aws画图

aws(学习笔记第一课) 使用AWS CLI 学习内容&#xff1a; 使用AWS CLI配置密钥对创建ec2 server使用drawio&#xff08;vscode插件&#xff09;进行AWS的画图 1. 使用AWS CLI 注册AWS账号 AWS是通用的云计算平台&#xff0c;可以提供ec2&#xff0c;vpc&#xff0c;SNS以及clo…...

【Python】Eventlet 异步网络库简介

Eventlet 是一个 Python 的异步网络库&#xff0c;它使用协程&#xff08;green threads&#xff09;来简化并发编程。通过非阻塞的 I/O 操作&#xff0c;Eventlet 使得你可以轻松编写高性能的网络应用程序&#xff0c;而无需处理复杂的回调逻辑或编写多线程代码。它广泛应用于…...

【JNI】数组的基本使用

在上一期讲了基本类型的基本使用&#xff0c;这期来说一说数组的基本使用 HelloJNI.java&#xff1a;实现myArray函数&#xff0c;把一个整型数组转换为双精度型数组 public class HelloJNI { static {System.loadLibrary("hello"); }private native String HelloW…...

React跨平台

React的跨平台应用开发详解如下&#xff1a; 一、跨平台能力 React本身是一个用于构建用户界面的JavaScript库&#xff0c;但它通过React Native等框架实现了跨平台应用开发的能力。React Native允许开发者使用JavaScript和React来编写原生应用&#xff0c;这些应用可以在iOS和…...

如何在 SQL 中更新表中的记录?

当你需要修改数据库中已存在的数据时&#xff0c;UPDATE 语句是你的首选工具。 这允许你更改表中一条或多条记录的特定字段值。 下面我将详细介绍如何使用 UPDATE 语句&#xff0c;并提供一些开发建议和注意事项。 基础用法 假设我们有一个名为 employees 的表&#xff0c;…...

宠物饮水机的水箱低液位提醒如何实现?

ICMAN液位检测芯片轻松实现宠物饮水机的水箱低液位提醒功能&#xff01; 工作原理 &#xff1a; 基于双通道电容式单点液位检测原理 方案特点&#xff1a; 液位检测精度高达1mm&#xff0c;超强抗干扰&#xff0c;动态CS 10V 为家用电器水位提醒的应用提供了一种简单而又有…...

EXCEL_光标百分比

Public Sub InitCells()Dim iSheet As LongFor iSheet Sheets.Count To 1 Step -1Sheets(iSheet).ActivateActiveWindow.Zoom 85ActiveWindow.ScrollRow 1ActiveWindow.ScrollColumn 1Sheets(iSheet).Range("A1").ActivateNext iSheetEnd Sub对日项目中的文档满天…...

(一)Web 网站服务之 Apache

一、Apache 的作用和特点 作用&#xff1a;Apache 是一款开源的网站服务器端软件&#xff0c;为网站的运行提供了稳定的基础。特点&#xff1a; 开源免费&#xff1a;这使得任何人都可以免费使用和修改它。模块化设计&#xff1a;具有高度的灵活性&#xff0c;可以根据需求选择…...

英语词汇小程序小程序|英语词汇小程序系统|基于java的四六级词汇小程序设计与实现(源码+数据库+文档)

英语词汇小程序 目录 基于java的四六级词汇小程序设计与实现 一、前言 二、系统功能设计 三、系统实现 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大厂码农|毕设布道师&a…...

AI学习指南深度学习篇-学习率衰减的实现机制

AI学习指南深度学习篇-学习率衰减的实现机制 前言 在深度学习中&#xff0c;学习率是影响模型训练的重要超参数之一。合理的学习率设置不仅可以加速模型收敛&#xff0c;还可以避免训练过程中出现各种问题&#xff0c;如过拟合或训练不收敛。学习率衰减是一种动态调整学习率的…...

My_qsort() -自己写的 qsort 函数

2024 - 10 - 05 - 笔记 - 21 作者(Author)&#xff1a;郑龙浩 / 仟濹(网名) My_qsort()- 自己写的qsort函数 My_qsort为自己写的qsort函数&#xff0c;但是采用的不是快速排序&#xff0c;而是冒泡排序&#xff0c;是为了模仿qsort函数而尝试写出来的函数。 思路&#xff1a…...

《向量数据库指南》——Mlivus Cloud打造生产级AI应用利器

哈哈,各位向量数据库和AI应用领域的朋友们,大家好!我是大禹智库的向量数据库高级研究员王帅旭,也是《向量数据库指南》的作者。今天,我要和大家聊聊如何使用Mlivus Cloud来搭建生产级AI应用。这可是个热门话题哦,相信大家都非常感兴趣! 《向量数据库指南》 使用Mlivus …...

Electron 进程通信

预加载&#xff08;preload&#xff09;脚本只能访问部分 Node.js API&#xff0c;但是主进程可以访问全部API。此时&#xff0c;需要使用进程通信。 比如&#xff0c;在preload.js中&#xff0c;不能访问__dirname&#xff0c;不能使用 Node 中的 fs 模块&#xff0c;但主进程…...

Kubernetes资源详解

华子目录 1.Kubernetes中的资源1.1资源管理介绍1.2资源管理方式1.2.1命令式对象管理1.2.2kubectl常见command命令1.2.3资源类型1.2.4常用资源类型 基本命令示例运行和调试命令示例高级命令示例总结 其他命令示例create和apply区别案例显示命名空间查看命名空间中的pod如何对外暴…...

C++11之线程

编译环境&#xff1a;Qt join&#xff1a;阻塞当前线程&#xff0c;直到线程函数退出 detach&#xff1a;将线程对象与线程函数分离&#xff0c;线程不依赖线程对象管理 注&#xff1a;join和detach两者必选其一&#xff0c;否则线程对象的回收会影响线程的回收&#xff0c;导致…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下&#xff0c;卢森堡罗伯特舒曼医院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;凭借在无菌制剂生产流程中引入增强现实技术&#xff08;AR&#xff09;创新项目&#xff0c;荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...