zoukankan      html  css  js  c++  java
  • 力扣——Partition List(分隔链表) python实现

    题目描述:

    中文:

    给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。

    你应当保留两个分区中每个节点的初始相对位置。

    示例:

    输入: head = 1->4->3->2->5->2, x = 3
    输出: 1->2->2->4->3->5

    英文:

    Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x.

    You should preserve the original relative order of the nodes in each of the two partitions.

    Example:

    Input: head = 1->4->3->2->5->2, x = 3
    Output: 1->2->2->4->3->5

    # Definition for singly-linked list.
    # class ListNode(object):
    #     def __init__(self, x):
    #         self.val = x
    #         self.next = None
    
    class Solution(object):
        def partition(self, head, x):
            """
            :type head: ListNode
            :type x: int
            :rtype: ListNode
            """
            head1 = ListNode(0)
            head2 = ListNode(0)
            Tmp = head
            phead1 = head1
            phead2 = head2
            while Tmp:
                if Tmp.val < x:
                    phead1.next = Tmp
                    Tmp = Tmp.next
                    phead1 = phead1.next
                    phead1.next = None
                else:
                    phead2.next = Tmp
                    Tmp = Tmp.next
                    phead2 = phead2.next
                    phead2.next = None
            phead1.next = head2.next
            head = head1.next
            return head

    来源来源:力扣

  • 相关阅读:
    6.让代码更具可读性
    5构造函数和析构函数
    4面向对象之类的继承
    3隐形的指针
    2面向对象之类的封装
    od快捷键
    1.纠结的c++
    101宏定义的其他用法
    100解剖宏定义函数
    99,printf scanf手动功能实现
  • 原文地址:https://www.cnblogs.com/spp666/p/11637739.html
Copyright © 2011-2022 走看看