给你一个链表的头节点 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
代码:
# @lc app=leetcode.cn id=86 lang=python3
#
# [86] 分隔链表
#
# @lc code=start
# 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:
head1=ListNode(0,None)
cur1=head1
head2=ListNode(0,None)
cur2=head2
head3=head
while head3!=None:
#print(head3.val)
if head3.val<x:
cur1.next=ListNode(head3.val,None)
head3=head3.next
cur1=cur1.next
else:
cur2.next=ListNode(head3.val,None)
head3=head3.next
cur2=cur2.next
cur1.next=head2.next
return head1.next
# @lc code=end