LeetCode - 86、分隔链表
2024-08-22 02:50:21
给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。
你应当保留两个分区中每个节点的初始相对位置。
示例:
输入: head = 1->4->3->2->5->2, x = 3
输出: 1->2->2->4->3->5
/**
* 列表定义
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
解法:
class Solution {
public ListNode partition(ListNode head, int x) {
if(head == null || head.next == null) {
return head;
} ListNode bigDump = new ListNode(0);
ListNode smallDump = new ListNode(0);
ListNode big = bigDump;
ListNode small = smallDump;
while(head != null) {
if (head.val >= x) {
big.next = head;
big = big.next;
} else {
small.next = head;
small = small.next;
}
head = head.next;
}
big.next = null;
small.next = bigDump.next;
return smallDump.next;
}
}
说明:使用双指针的方式,分别记录小于、大于等于的列表部分。然后在将其拼接起来。
注意:需要创建两个临时变量来存储两个新列表的头部地址
最新文章
- 使用echarts开发电子屏数据展示页面
- C++Builder 笔记
- U1 - A 留在电脑里的字体
- 【AngularJs】---表单验证
- 第二周:01 ICP迭代交互
- 使用DataContractJsonSerializer类将类型实例序列化为JSON字符串和反序列化为实例对象 分类: JSON 前端 2014-11-10 10:20 97人阅读 评论(1) 收藏
- akka
- pyqt托盘例子
- centos下修改hostname,ip,netmask,gateway,dns
- gulp learning note
- 信号处理引发的cpu高
- 使用 whistle 替代本地 nginx/webpack 服务
- 解析.NET对象的跨应用程序域访问(上篇)
- shareSdk分享图片
- C#实现RSA加密与解密、签名与认证(转)
- LOJ.6062.[2017山东一轮集训]Pair(Hall定理 线段树)
- (转) Read-through: Wasserstein GAN
- JS压缩工具配置
- Andrew Ng-ML-第八章-正则化
- 软工1816 · Alpha冲刺(8/10)