LeetCode 24. Swap Nodes in Pairs (Python)

来源:互联网 发布:入职培训 it 编辑:程序博客网 时间:2024/06/11 16:11

题目描述:

Given a linked list, swap every two adjacent nodes and return its head.

For example,Given 1->2->3->4, you should return the list as 2->1->4->3.

Your algorithm should use only constant space. You may not modify the values in the list, only nodes itself can be changed.

大致思路:
因为要求不能只交换节点的值,所以在遍历的时候通过三个指针进行节点的交换,注意开始时添加一个任意节点指向头结点以便于交换。

AC代码:

class Solution(object):    def swapPairs(self, head):        """        :type head: ListNode        :rtype: ListNode        """        if not head:            return head        dummy = ListNode(0)        dummy.next = head        copy = dummy        while copy.next and copy.next.next:            p = copy.next            q = p.next            copy.next = q            p.next = q.next            q.next = p            copy = p        return dummy.next
原创粉丝点击