重排链表——力扣143

news2024/11/17 13:48:58

文章目录

      • 题目描述
      • 法一:寻找链表中点、链表逆序、链表合并

题目描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

法一:寻找链表中点、链表逆序、链表合并

在这里插入图片描述

void reorderList(ListNode* head){
		if(head==nullptr){
			return;
		}
		// 找到中点 
		ListNode* mid = FindMiddle(head);
		ListNode *h1=head, *h2=mid->next;
		mid->next=nullptr;   
		// 逆序后半部分
		h2 = reverseList(h2);
		// 合并链表
		mergeList(h1, h2);
	} 
	
	ListNode* FindMiddle(ListNode* head){
		ListNode *slow=head, *fast=head;
		while(fast->next!=nullptr && fast->next->next!=nullptr){
			slow = slow->next;
			fast = fast->next->next;
		}
		return slow;
	}
	
	ListNode* reverseList(ListNode* head){
		ListNode* prev=nullptr;
		ListNode* cur = head;
		while(cur){
			ListNode* next = cur->next;
			cur->next = prev;
			prev = cur;
			cur = next;
		}
		return prev;
	}
	
	void mergeList(ListNode* l1, ListNode* l2){
		ListNode* l1_tmp;
		ListNode* l2_tmp;
		while(l1 && l2){
			l1_tmp = l1->next;
			l2_tmp = l2->next;
			
			l1->next = l2;
			l1 = l1_tmp;
			
			l2->next = l1;
			l2 = l2_tmp;
		}
	}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/809911.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数值分析第七章节 用Python实现非线性方程与方程组的数值解法

参考书籍:数值分析 第五版 李庆杨 王能超 易大义编 第7章 非线性方程与方程组的数值解法 文章声明:如有发现错误,欢迎批评指正 文章目录 迭代法求解 x e x − 1 0 xe^x-10 xex−10牛顿法求解 x e x − 1 0 xe^x-10 xex−10简化牛顿法求解 …

PUBG(最短路BFS)

题目:https://ac.nowcoder.com/acm/contest/62106/E 最近,喜爱ACM的PBY同学沉迷吃鸡,无法自拔,于是又来到了熟悉的ERANGEL。经过一番搜寻,PBY同学准备动身前往安全区,但是,地图中埋伏了许多LYB&…

黑苹果如何在macOS Sonoma中驱动博通网卡

准备资源(百度:黑果魏叔 下载) 资源包中包含:AirportBrcmFixup.kext/IOSkywalkFamily.kext/IO80211FamilyLegacy.kext/OpenCore-Patcher 使用方法: 1.将 csr-active-config 设置为 03080000 全选代码 复制 2.在 …

Flutter ios真机调试连接断开后应用闪退

使用ios真机调试的时候,能正常打开应用,但是当数据线断开连接的时候,应用就会关闭,重新打开就会闪退。 原因是flutter默认在开发过程中使用debug模式编译 只需要将debug选择为release 重新编译就行。

AI工程师的崛起:填补AI革命中的空白

在一个拥有大约5000名语言学习模型(LLM)研究员,但大约有5000万软件工程师的世界中,供应限制决定了一种新型专业人才—AI工程师的迅猛增长。他们的崛起不仅仅是一种预测,更是对科技世界动态变化的必然反应。AI工程师作为…

AutoSAR系列讲解(实践篇)10.2-EcuM的上下电流程

目录 一、上电(StartUp) 二、下电(Shutdown) 三、睡眠(Sleep) 上下电,说白了就是给Ecu上下电后,Ecu的代码执行顺序。这里还讲到了大家可能经常会用到的Sleep流程,主要就是可以归纳为以下这张图,大家 掌握这张图就基本掌握了EcuM的上下电流程了。这张图的具体内容博…

MySQL的JSON操作

官网地址 1. MySQL json介绍 As of MySQL 5.7.8, MySQL supports a native JSON data type defined by RFC 7159 that enables efficient access to data in JSON (JavaScript Object Notation) documents. Automatic validation of JSON documents stored in JSON columns. …

CAPL(vTESTStudio) - CANCANFD信号检查

目录 一、获取目标报文数据 二、解析预期信号数据在目标报文中的数据

np.bincount、np.digitize、np.unique、np.histogram、np.searchsorted

np.bincount 简介 np.bincount是统计数组中数字出现数量的函数,数值n在输入数组x中每出现1次,则输出o的o[n]1。 函数 官方文档 函数参数: x: 输入,1维非负数组weights: 权重数组, 可选参数,如果指定了这一参数&am…

HCIP OSPF远离骨干非骨干区域-使用虚链路解决

虚链路 虚链路是OSPF针对不规则区域提出的一种解决方案,也被称为虚连接。 虚链路可以在任意两个ABR上建立,但是要求这两个ABR都有端口连接到一个相同的非骨干区域。 注:虚链路的建立是双向的,虚链路永远属于骨干区域&#xff0…

【学习笔记】关于图像YUV格式分类和排布方式的全学习

这里是尼德兰的喵学习笔记相关文章,欢迎您的访问! 如果文章对您有所帮助,期待您的点赞收藏 让我们一起为芯片前端全栈工程师而努力 目录 前言 YUV格式导图 YUV444 packed planar I444 YV24 semi-planar NV24 NV42 YUV422 packed …

pytorch(6)——神经网络基本骨架nn.module的使用

1 神经网络框架 1.1 Module类的使用 NN (Neural network): 神经网络 Containers: 容器 Convolution Layers: 卷积层 Pooling layers: 池化层 Padding Layers: 填充层 Non-linear Activations (weighted sum, nonlinearity): 非线性激活 Non-linear Activations (other): 非线…

mpi4py包安装报错

报错情况 #include <mpi.h>^~~~~~~compilation terminated.failure.removing: _configtest.c _configtest.oerror: Cannot compile MPI programs. Check your configuration!!![end of output]note: This error originates from a subprocess, and is likely not a probl…

设备取电芯片LDR6328Q

2021年5月&#xff0c;USB-IF 协会发布了全新的USB PD3.1规范&#xff0c;该规范将快充功率上限从100 W提升至240W&#xff08;支持Extended Power Range&#xff0c;简称EPR&#xff09;。充电功率的提升也让USB PD的应用从手机、笔记本电脑&#xff0c;扩展到便携式设备、物联…

Flowable-中间事件-消息中间抛出事件

定义 消息中间事件指在流程中将一个消息事件作为独立的节点来运行。它是一种抛出事件&#xff0c;当流程 执行到消息中间事件时就会中断在这里&#xff0c;一直等待被触发&#xff0c;直接到该事件接收到相应的消息后&#xff0c;流 程沿后继路线继续执行。消息事件是一种引用…

页面访问控制远程仓库

页面访问权限控制 什么是jwt身份认证 在前后端分离模式的开发中&#xff0c;服务器如何知道来访者的身份呢&#xff1f; 在登录后&#xff0c;服务器会响应给用户一个 令牌 &#xff08;token&#xff09;令牌中会包括该用户的id等唯一标识浏览器收到令牌后&#xff0c;自己…

数据结构入门指南:链表(新手避坑指南)

目录 前言 1.链表 1.1链表的概念 1.2链表的分类 1.2.1单向或双向 1.2.2.带头或者不带头 1.2.33. 循环或者非循环 1.3链表的实现 定义链表 总结 前言 前边我们学习了顺序表&#xff0c;顺序表是数据结构中最简单的一种线性数据结构&#xff0c;今天我们来学习链表&#x…

数据结构: 线性表(顺序表实现)

文章目录 1. 线性表的定义2. 线性表的顺序表示:顺序表2.1 概念及结构2.2 接口实现2.2.1 顺序表初始化 (SeqListInit)2.2.2 顺序表尾插 (SeqListPushBack)2.2.3 顺序表打印 (SeqListPrint)2.2.6 顺序表销毁 (SeqListDestroy)2.2.5 顺序表尾删 (SeqListPopBack)2.2.6 顺序表头插 …

vue中各种混淆用法汇总

✨在生成、导出、导入、使用 Vue 组件的时候&#xff0c;像我这种新手就会常常被位于不同文件的 new Vue() 、 export default{} 搞得晕头转向。本文对常见用法汇总区分 new Vue() &#x1f4a6;Vue()就是一个构造函数&#xff0c;new Vue()是创建一个 vue 实例。该实例是一个…

UE5 与 C++ 入门教程·第二课:动画重定向

虚幻中的角色动画都是基于 骨骼网格体 &#xff08;Skeletal Mesh&#xff09;实现&#xff0c;换言之&#xff0c;动画是跟骨骼网格体绑定的。如果有两个骨骼网格体&#xff0c;各自有一套角色动画&#xff0c;那么就可以通过重定向&#xff08;Retargeting&#xff09;将两个…