首页 > 其他分享 >24 两两交换链表中的节点

24 两两交换链表中的节点

时间:2022-09-01 20:57:19浏览次数:85  
标签:24 head cur self next 链表 节点

题目24 两两交换链表中的节点

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。
示例1:
输入:head = [1,2,3,4]
输出:[2,1,4,3]

示例 2:
输入:head = []
输出:[]

示例 3:
输入:head = [1]
输出:[1]

思路

建议使用虚拟头结点,这样会方便很多,要不然每次针对头结点(没有前一个指针指向头结点),还要单独处理。(可以简答理解为,处理某个节点的时候一定要找到该节点的前一个节点,这里为了方便处理头节点)
一定要画图,就看的清晰了!

代码

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def swapPairs(self, head: Optional[ListNode]) -> Optional[ListNode]:
        dummy_head = ListNode(next=head)  # 建立虚拟节点
        cur = dummy_head
        while cur.next != None and cur.next.next != None:
            temp1 = cur.next  # 保存本来的头节点,因为cur.next就会丢失原先的cur.next节点
            temp2 = cur.next.next.next  # 保存第二次交换两个节点的前一个节点
            cur.next = cur.next.next
            cur.next.next = temp1
            temp1.next = temp2
            cur = cur.next.next
        return dummy_head.next  # 返回虚拟节点的下一个节点

标签:24,head,cur,self,next,链表,节点
From: https://www.cnblogs.com/edkong/p/16647775.html

相关文章

  • luoguP4824 [USACO15FEB] Censoring S 解题报告
    血的教训。。。传送门题意FJ已经根据杂志的所有文字,创建了一个字符串$S$($S$的长度保证不超过$10^6$),他想删除其中的子串$T$,他将删去$S$......
  • leetcode 206. Reverse Linked List 反转链表(简单)
    一、题目大意给你单链表的头节点head,请你反转链表,并返回反转后的链表。示例1:输入:head=[1,2,3,4,5]输出:[5,4,3,2,1]示例2:输入:head=[1,2]输出:[2,1]示例3:......
  • 链表的头插法和尾插法
    复习一下链表的插入操作头插法创建一个临时节点存放数据将头部指针后面的数据都链接到这个临时节点后面将这个临时节点再链接到头部指针后面尾插法创建......
  • 206 反转链表
    题目206反转链表给你单链表的头节点head,请你反转链表,并返回反转后的链表。示例1:输入:head=[1,2,3,4,5]输出:[5,4,3,2,1]示例2:输入:head=[1,2]输出:[2,1]示例......
  • 给Docker集群中Label节点打上标签与服务约束
    https://www.cnblogs.com/caoweixiong/p/12382282.htmlLabel作用:在服务器中通常需要将某个服务固定在某一台机器上运行的时候,可以给集群中的机器打上标签......
  • 61. 旋转链表
    61.旋转链表给你一个链表的头节点head,旋转链表,将链表每个节点向右移动 k 个位置。 示例1:输入:head=[1,2,3,4,5],k=2输出:[4,5,1,2,3]示例2:输入:hea......
  • 前端也该刷点算法题——双指针解“链表”题也太香了叭!
    双指针解“链表”题也太香了叭!同步双指针1查找链表中倒数第k个节点剑指Offer22.链表中倒数第k个节点思路:假设链表的长度为n,不难得出倒数第k个节点即为整数第n+......
  • k8s允许master节点参与调度的设置方法
    默认情况下,master节点是不参与调度的,且在master节点上有一个污点NoSchedule(表示k8s将不会将Pod调度到具有该污点的Node上),有关污点章节可参考https://www.cnblogs.com/panw......
  • leetcode 1019. 链表中的下一个更大节点 js实现
    给定一个长度为 n 的链表 head对于列表中的每个节点,查找下一个更大节点的值。也就是说,对于每个节点,找到它旁边的第一个节点的值,这个节点的值严格大于它的值。返回......
  • 万节点规模云服务的 SRE 能力建设
    作者:宋傲(凡星)背景及现状系统架构简介上图为阿里云内部实际使用的系统架构,系统主要用途为实时数据流的计算和存储。使用阿里云的容器服务ACK作为系统底座,容器化的部署......