LeetCode 86 Partition List 分区链表 Java

news/2025/3/30 5:15:29/

题目:给定一串链表的起始节点head和一个数值x,将链表中所有比X值小的节点放在比X值大的节点的前面,除此之外,要求保持原有的节点排序不变。

例子:

举例1:

输入 :head = [1,4,3,2,5,2], x = 3;

输出 :[1,2,2,4,3,5 ];

举例2:

输入:head = [2,1], x = 2

输出:[1,2]

解题思路:

创建两个链表,分别存储比x小的节点和大于等于x的节点,然后将两个链表重新拼接在一起

java">/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val = val; }* ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode partition(ListNode head, int x) {ListNode lessListHead = new ListNode(0);ListNode greaterListHead = new ListNode(0);ListNode lessListCurrect = lessListHead;ListNode greaterListCurrect = greaterListHead;//遍历head链表,将head中值比x小的节点放入小的链表中,反之放入另一个链表中while (head != null) {if (head.val < x) {lessListCurrect.next = head;lessListCurrect = lessListCurrect.next;} else {greaterListCurrect.next = head;greaterListCurrect = greaterListCurrect.next;}head = head.next;}//拼接两个链表greaterListCurrect.next = null;lessListCurrect.next = greaterListHead.next;return lessListHead.next;}
}


http://www.ppmy.cn/news/1583403.html

相关文章

FreeSWITCH入门到精通系列(五):FreeSWITCH 脚本与自动化

FreeSWITCH 脚本与自动化 FreeSWITCH 提供了多种脚本语言支持&#xff0c;如 Lua、JavaScript、Python、Perl 等&#xff0c;允许开发者自动化拨号、通话控制、事件处理等操作。本文将介绍 FreeSWITCH 支持的脚本语言、如何使用 Lua 进行自动化&#xff0c;并提供一个完整的 自…

从“制造”到“智造”,看中集“灯塔”生产线与永洪“数据技术”的紧密融合

“灯塔”工厂&#xff0c;这一由世界经济论坛提出的概念&#xff0c;已成为制造业领域的一个新的标杆&#xff0c;它代表着制造业的最高智能化水平。作为全球领先的制造企业&#xff0c;中集集团一直致力于提升生产效率和产品质量&#xff0c;以满足全球贸易的不断增长需求。永…

C++:背包问题习题

1. 货币系统 1371. 货币系统 - AcWing题库 给定 V 种货币&#xff08;单位&#xff1a;元&#xff09;&#xff0c;每种货币使用的次数不限。 不同种类的货币&#xff0c;面值可能是相同的。 现在&#xff0c;要你用这 V 种货币凑出 N 元钱&#xff0c;请问共有多少种不同的…

2025清华大学:DeepSeek教程全集(PDF+视频精讲,共10份).zip

一、资料列表 第一课&#xff1a;Deepseek基础入门 第二课&#xff1a;DeepSeek赋能职场 第三课&#xff1a;普通人如何抓住DeepSeek红利 第四课&#xff1a;让科研像聊天一样简单 第五课&#xff1a;DeepSeek与AI幻觉 第六课&#xff1a;基于DeepSeek的AI音乐词曲的创造法 第…

C语言-排序

C语言-排序 冒泡排序选择排序 冒泡排序 两两比较&#xff0c;大的放后面。 每比较一轮&#xff0c;记录交换的次数。当交换的次数为零时&#xff0c;则表示排序完成。 char a[10]{9,5,1,2,4,7,6,8,3,0};9大于5 交换 5 9 1 2 4 7 6 8 3 0 9大于1 交换 5 1 9 2 4 7 6 8 3…

【RAGFlow】全由国内镜像源搭建docker版

国内镜像搭建RagFlow平台Docker版 一、部署说明⛳主流镜像源对比&#x1f4a1; RAGFlow 是什么&#xff1f;&#x1f50e; 系统架构&#x1f4dd; 机器配置 二、基础配置&#x1f4dd;系统源&#x1f3de;️Docker配置&#x1f9f1;前提条件&#x1f683;配置Docker镜像源 三、…

Linux中的make与Makefile详解

一、make命令简介 make是Linux系统中一个强大的自动化构建工具&#xff0c;它通过读取名为"Makefile"的文件来执行一系列命令&#xff0c;完成程序的编译和链接等工作。 1. make命令的基本用法 make [选项] [目标] 如果不指定目标&#xff0c;make会默认执行Make…

Elasticsearch快速上手与深度进阶:一站式实战教程

目录 1. Elasticsearch 简介 2. 安装与启动 方式 1&#xff1a;Docker 快速安装&#xff08;推荐&#xff09; 方式 2&#xff1a;手动安装 3. 基础操作 3.1 创建索引 3.2 插入文档 3.3 查询文档 3.4 更新文档 3.5 删除文档 4. 高级查询 4.1 布尔查询 4.2 范围查询…