【力扣】86. 分隔链表

ops/2024/12/23 4:37:33/

86. 分隔链表

leetcode.cn/problems/partition-list/description/" rel="nofollow">题目描述

给你一个链表的头节点 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]

提示:

  • 链表中节点的数目在范围 [0, 200] 内
  • -100 <= Node.val <= 100
  • -200 <= x <= 200

解题方法

直接法

遍历原始链表,并维护两个链表,分别保存比 x 大和比 x 小的节点

  • C 语言
/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/
struct ListNode* partition(struct ListNode* head, int x) {struct ListNode* str1 = malloc(sizeof(struct ListNode));struct ListNode* str2 = malloc(sizeof(struct ListNode));struct ListNode* str1_h = str1;struct ListNode* str2_h = str2;while (NULL != head) {if (head->val < x) {str1->next = head;str1 = str1->next;} else {str2->next = head;str2 = str2->next;}head = head->next;}str2->next = NULL;str1->next = str2_h->next;return str1_h->next;
}
复杂度分析
时间复杂度为 O(n),其中 n 是原链表的长度。
空间复杂度为 O(1)。

http://www.ppmy.cn/ops/37260.html

相关文章

Eplan带你做项目——如何实现项目的交付

前言 Eplan作为一款专业的电气工程设计软件&#xff0c;不仅在设计阶段为电气工程师提供了强大的绘图、计算、仿真等功能&#xff0c;还具备丰富的数据管理与交换能力&#xff0c;能够便捷、准确地导出软件设计、生产制造所需的数据&#xff0c;实现电气设计与软件设计、生产制…

编程语言QT、C++、C#、Matlab、SQL Server开发日志总结

目录 引言 正文 1、Qt连接SQL server数据库 2、C#使用chart绘制实时折线图&#xff0c;波形 3、ORACLEXE数据库 4、QT通过ODBC驱动连接Oracle数据库 5、Microsoft SQL Server 2014 安装图解 6、SQL Server 2014应用 7、C/C​​​​​​​ 8、QT…

【C++泛型编程】(二)标准模板库 STL

文章目录 标准模板库 STL容器算法迭代器仿函数/函数对象适配器分配器示例 标准模板库 STL C 的标准模板库&#xff08;Standard Template Library&#xff0c;STL&#xff09;旨在通过模板化的设计&#xff0c;提供一种通用的编程模式&#xff0c;使程序员能方便地实现和扩展各…

数据库设计规范

1 命名规范 1.1数据库命名基本原则 所有命名采用26个英文大小写字母和0&#xff0d;9这十个自然数&#xff0c;加上下划线_组成。不能出现其他字符&#xff08;注释除外&#xff09;。长度不超过30个字符。实际名字尽量描述实体的内容&#xff0c;由英文单词、单词组合或单词…

vector介绍与使用【C++】

C vector 前言一、vector的介绍c文档介绍简介 二、vector的定义和使用vector的定义vector代码演示 vector的使用vector iterator 的使用vector 空间增长问题vector 增删查改vector 迭代器失效问题引起底层空间改变eraseg与vs检测比较string迭代器失效 vector 在OJ中的使用只出现…

10000字讲解IoC 思想以及五大注解

文章目录 IoC 思想通过案例讲解 IoC1.传统的开发方式 SpringIoC 和 DI五大注解ControllerServiceComponentRepositoryConfiguration 为什么要有这么多的类注解类注解之间的关系方法注解 Bean重命名 bean扫描路径 IoC 思想 什么是 Spring 呢&#xff1f; 我们经常听到的都是说…

力扣hot100:101. 对称二叉树(双指针以不同方式递归)

LeetCode&#xff1a;101. 对称二叉树 看了第一个样例&#xff0c;很容易直接层序遍历看每一层的前后是否相同。但接下来这个样例告诉你&#xff0c;不能这样做。 层序遍历 仔细思考会发现&#xff0c;层序遍历不能看本结点&#xff0c;但是可以看儿子结点是否对称&#xf…

数论:不定方程的引入

研究的对象&#xff1a;不定方程 文章目录 研究的对象&#xff1a;不定方程不定方程引入&#xff1a;裴蜀定理证明&#xff1a;欧几里得算法证明&#xff1a;充分性证明&#xff1a;必要性证明&#xff1a; 战术总结&#xff1a; 不定方程引入&#xff1a; 不定方程&#xff0…