题解 | 两两交换链表中的结点

两两交换链表中的结点

https://www.nowcoder.com/practice/1aabdaea8c7e4874bb1d3eda2c7f0042

from os import pread


class Solution:
    def swapPairs(self, head: ListNode) -> ListNode:
        # write code here
        dummy = ListNode(0)
        dummy.next = head
        prev = dummy
        while prev.next and prev.next.next:
            # 定义当前要交换的两个节点
            first = prev.next
            second = first.next

            # 三步指针交换
            prev.next = second  # prev指向第二个节点
            first.next = second.next  # 第一个节点指向第三个节点(或None)
            second.next = first  # 第二个节点指向第一个节点

            # 移动prev到下一对的前一个位置(即刚交换完的第一个节点)
            prev = first

        return dummy.next

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务