题目链接🔗:两两交换链表的节点
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
你不能只是单纯的改变节
点内部的值,而是需要实际的进行节点交换。
思路:
正确代码✅:
# 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):
"""
:type head: ListNode
:rtype: ListNode
"""
dummy_head = ListNode()
dummy_head.next = head
cur = dummy_head
while cur.next and cur.next.next:
tmp = cur.next # 临时节点1
tmp1 = cur.next.next.next # 临时节点2
cur.next = cur.next.next #步骤1
cur.next.next = tmp #步骤 2
cur.next.next.next = tmp1 # 步骤3
cur = cur.next.next
return dummy_head.next