Saturday, August 15, 2015

Leetcode 24. Swap Nodes in Pairs

https://leetcode.com/problems/swap-nodes-in-pairs/

Simple problem. The plain thought is to do the swap if there are two nodes, and do nothing if there is only one or no node left. Note to write the code as concise as possible, namely avoid excessive branches.

Solution:
# T:O(n) S:O(1)
class Solution:
    # @param a ListNode
    # @return a ListNode
    def swapPairs(self, head):
        dummy = ListNode(0)
        dummy.next = head
        current = dummy
        while current.next and current.next.next:
            next_one, next_two, next_three = current.next, current.next.next, current.next.next.next
            current.next = next_two
            next_two.next = next_one
            next_one.next = next_three
            current = next_one
        return dummy.next
Run Time: 48 ms

No comments:

Post a Comment