예제 #1
0
    def swapPairs(self, head: ListNode) -> ListNode:
        if not head:
            return head

        next = head.next
        if not next:
            return head

        rest = next.next
        next.next = head
        head.next = self.swapPairs(rest)
        return next
예제 #2
0
    def list_partition(node: ListNode, value: int) -> ListNode:
        less = None
        bigger = None

        while node:
            next = node.next
            if node.val < value:
                node.next = less
                less = node
            else:
                node.next = bigger
                bigger = node
            node = next

        if not less:
            return bigger

        head = less
        while less.next:
            less = less.next
        less.next = bigger

        return head