Skip to content

Latest commit

 

History

History
executable file
·
49 lines (38 loc) · 1.11 KB

024--Swap Nodes in Pairs.md

File metadata and controls

executable file
·
49 lines (38 loc) · 1.11 KB
Given a linked list, swap every two adjacent nodes and return its head.

Example:

Given 1->2->3->4, you should return the list as 2->1->4->3.
Note:

Your algorithm should use only constant extra space.
You may not modify the values in the list's nodes, only nodes itself may be changed.
# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution(object):
    def swapPairs(self, head):
        """
        :type head: ListNode
        :rtype: ListNode
        """
        pre, pre.next = self, head
        while pre.next and pre.next.next:
            a = pre.next
            b = a.next
            
            pre.next, b.next, a.next = b, a, b.next
            #a.next = b.next
            #b.next = a
            #pre.next=b
            
            pre= a
        
        return self.next
    
    '''
    # 顺便回顾一下链表的反转
    def reverseList(self, head):
        cur, prev = head, None
        while cur:
            cur.next, prev, cur = prev, cur, cur.next
    '''