【Leetcode 86】 Partition List

问题描述:

  给定一个list, 将所有小于x的node放到左边,剩下的保持原样。

问题解决:

  闲的无聊,用c++和python都做了一遍。

代码如下:

  

# 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
        """
        if(head == None):
            return head
        p = head
        lessList = None
        largerList = None
        newHead = None
        lHead = None
        while(p):
            print(p.val)
            if(p.val < x):
                if(newHead == None):
                    newHead = p
                else:
                    lessList.next = p
                lessList = p
            else:
                if(lHead == None):
                    lHead = p
                else:
                    largerList.next = p
                largerList = p
            t = p.next
            p.next = None
            p = t
        if(newHead == None):
            newHead = lHead
        else:
            lessList.next = lHead
        return newHead
        

第一个py,解决了个小问题。加油吧~~

原文地址:https://www.cnblogs.com/luntai/p/5571321.html