![]()
/**
* 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) {
// 新建小于特定值x的链表
ListNode small = new ListNode(0);
// 申请小链表的遍历指针
ListNode smallHead = small;
// 新建大于特定值x的链表
ListNode large = new ListNode(0);
// 申请大链表的遍历指针
ListNode largeHead = large;
// 将链表的节点按照值的大小分别尾插入两个链表
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;
}
}