leetcode86分割链表
Posted lisin-lee-cooper
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode86分割链表相关的知识,希望对你有一定的参考价值。
一. 问题描述
给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。
你应当 保留 两个分区中每个节点的初始相对位置。
示例 1:
输入:head = [1,4,3,2,5,2], x = 3
输出:[1,2,2,4,3,5]
二.示例代码
public class PartitionLinkedList {
public static ListNode partition(ListNode head, int x) {
ListNode small = new ListNode(0);
ListNode smallHead = small;
ListNode large = new ListNode(0);
ListNode largeHead = large;
// 1 4 3 2 5 2
while (head != null) {
if (head.val < x) {
small.next = head;
small = small.next;
} else {
large.next = head;
large = large.next;
}
head = head.next;
}
large.next = null;
small.next = largeHead.next;
return smallHead.next;
}
public static void main(String[] args) {
ListNode listNode1 = new ListNode(1);
ListNode listNode4 = new ListNode(4);
ListNode listNode3 = new ListNode(3);
ListNode listNode2 = new ListNode(2);
ListNode listNode5 = new ListNode(5);
ListNode listNode22 = new ListNode(2);
listNode1.next = listNode4;
listNode4.next = listNode3;
listNode3.next = listNode2;
listNode2.next = listNode5;
listNode5.next = listNode22;
ListNode result = partition(listNode1, 3);
System.out.println(result);
}
}
以上是关于leetcode86分割链表的主要内容,如果未能解决你的问题,请参考以下文章