这题要求是常数空间,不能修改值,只能修改node,所以直接在node上进行操作。代码如下:
# 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
"""
if head:
if head.next:
b = head.next
head.next = head.next.next
b.next = head
head = b
print head.val
left = head.next
while left.next and left.next.next:
b = left.next
left.next = b.next
c = left.next.next
left.next.next = b
b.next = c
left = left.next.next
return head
本文介绍了一种在常数空间内不改变链表值而仅修改节点指针以实现每两个相邻节点互换位置的算法。该算法通过迭代方式完成,并确保了空间复杂度为O(1)。
127

被折叠的 条评论
为什么被折叠?



