86. Partition List【M】【48】【leetcode题解】

来源:互联网 发布:手机上能开淘宝店吗 编辑:程序博客网 时间:2024/06/08 03:23


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.


Subscribe to see which companies asked this question



class Solution(object):    def partition(self, head, x):        h = head                new_h = ListNode(0)        new_head = new_h                previous = ListNode(0)        prv = previous        #其中,pre是比x大的,h是比x小的        prv.next = h#~!!!!!!!这句话非常重要!!因为最开始如果没有这句的话,就没有进行初始化,pre就只是一个空的头        while h:            if h.val < x:                new_h.next = h                new_h = h                                prv.next = h.next                h = h.next                else:                prv = h                h = h.next         new_h.next = previous.next        return new_head.next


0 0