zoukankan      html  css  js  c++  java
  • [LeetCode]题解(python):086

    题目来源


    https://leetcode.com/problems/partition-list/

    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.

    For example,
    Given 1->4->3->2->5->2 and x = 3,
    return 1->2->2->4->3->5.


    题意分析


    Input:

    :type head: ListNode
    :type x: int

    Output:

         :rtype: ListNode

    Conditions:将一个list分成两个list,其中一个list的所有元素都小于x,另外一个list的所有元素都大于或等于x,注意要保持稳定性(即相等的元素,原来什么顺序就是什么顺序)


    题目思路


    设两个头节点,之后扩展这两个list就好,head1 list的所有元素都小于x,head2 list的所有元素都大于或等于x,然后将head2 list加到head1 list后面,然后返回需要的list 起点。


    AC代码(Python)

     1 # Definition for singly-linked list.
     2 # class ListNode(object):
     3 #     def __init__(self, x):
     4 #         self.val = x
     5 #         self.next = None
     6 
     7 class Solution(object):
     8     def partition(self, head, x):
     9         """
    10         :type head: ListNode
    11         :type x: int
    12         :rtype: ListNode
    13         """
    14         head1 = ListNode(0)
    15         head2 = ListNode(0)
    16         
    17         p1 = head1
    18         p2 = head2
    19         
    20         tmp = head
    21         
    22         while tmp:
    23             if tmp.val < x:
    24                 p1.next = tmp
    25                 tmp = tmp.next
    26                 p1 = p1.next
    27                 p1.next = None
    28             else:
    29                 p2.next = tmp
    30                 tmp = tmp.next
    31                 p2 = p2.next
    32                 p2.next = None
    33         p1.next = head2.next
    34         return head1.next
    35             
  • 相关阅读:
    详解log4j2(下)
    linux编译相关知识
    vi/vim正则表达式
    红黑树学习
    转行做程序员之前必须考虑的三件事
    工作十年,你为什么依然没有成为专家
    __sync_fetch_and_add
    STL容器的本质
    学习hash_map从而了解如何写stl里面的hash函数和equal或者compare函数
    c++ union学习
  • 原文地址:https://www.cnblogs.com/loadofleaf/p/5367069.html
Copyright © 2011-2022 走看看