题目
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。
方法
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution(object):
def swapPairs(self, head):
dummy_head = ListNode(next = head)
pre = dummy_head
while pre.next and pre.next.next:
curr = pre.next
post = pre.next.next
curr.next = post.next
post.next = curr
pre.next = post
pre = pre.next.next
return dummy_head.next
相关知识
-
头指针:
单链表中头指针指向第一个结点(即使头节点改变,头指针永远指向第一个节点)
参考
代码相关:https://programmercarl.com/0024.%E4%B8%A4%E4%B8%A4%E4%BA%A4%E6%8D%A2%E9%93%BE%E8%A1%A8%E4%B8%AD%E7%9A%84%E8%8A%82%E7%82%B9.html
头指针:https://baike.baidu.com/item/%E5%A4%B4%E6%8C%87%E9%92%88/9794674?fr=aladdin