题目链接
https://leetcode.cn/problems/partition-list/
代码
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 bigHead=new ListNode(-1);
ListNode bigTail=bigHead;
ListNode smallHead=new ListNode(-1);
ListNode smallTail=smallHead;
while(head!=null)
{
if(head.val<x)
{
smallTail.next=head;
smallTail=head;
}else
{
bigTail.next=head;
bigTail=head;
}
head=head.next;
}
smallTail.next=bigHead.next;
bigTail.next=null;
return smallHead.next;
}
}
c++
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
class Solution {
public:
ListNode* partition(ListNode* head, int x) {
ListNode *smallHead=new ListNode(-1);
ListNode *smallTail=smallHead;
ListNode *bigHead=new ListNode(-1);
ListNode *bigTail=bigHead;
while(head!=NULL)
{
if(head->val<x)
{
smallTail->next=head;
smallTail=head;
}
else
{
bigTail->next=head;
bigTail=head;
}
head=head->next;
}
smallTail->next=bigHead->next;
bigTail->next=NULL;
return smallHead->next;
}
};
python
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def partition(self, head: ListNode, x: int) -> ListNode:
bigHead=ListNode(-1)
bigTail=bigHead
smallHead=ListNode(-1)
smallTail=smallHead
while head!=None:
if head.val<x:
smallTail.next=head
smallTail=head
else:
bigTail.next=head
bigTail=head
head=head.next
smallTail.next=bigHead.next
bigTail.next=None
return smallHead.next