leetcodeday86 –分隔链表

给你一个链表的头节点 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

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注