问题描述:

  给定一个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,解决了个小问题。加油吧~~

相关文章:

  • 2021-07-29
  • 2022-12-23
  • 2022-12-23
  • 2021-09-29
  • 2021-09-17
猜你喜欢
  • 2021-08-19
  • 2021-10-25
  • 2021-11-02
  • 2021-11-22
  • 2021-10-11
  • 2021-09-09
  • 2021-06-25
  • 2022-02-16
相关资源
相似解决方案