给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。示例 1:输入:head = [1,2,3,4]
输出:[2,1,4,3]
示例 2:输入:head = []
输出:[]
示例 3:输入:head = [1]
输出:[1]思路:首先建立一个 dummy 为头节点,它的 next 指向 head。为了保证 节点不丢失,一共设置了 pre、a、b 三个指针,然后更新指针, 完成交换。这里迭代的终止条件是 pre.next 为空或 pre.next.next 节点为空(说明后面的节点不到两个,无需交换)。# 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: ListNode) -> ListNode:# 创建头节点dummpy = ListNode(0)dummpy.next = headpre = dummpya = dummpyb = dummpy# 终止判断条件,后两个数不为空while pre.next != None and pre.next.next != None:a = pre.nextb = pre.next.nextpre.next = ba.next = b.nextb.next = apre = pre.next.nextreturn dummpy.next

23. Leetcode 24. 两两交换链表中的节点 (链表-基础操作类-交换链表)相关推荐

  1. 23. Leetcode 86. 分隔链表 (链表-基础操作类-分隔链表)

    给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前.你应当 保留 两个分区中每个节点的初始相对位置.示例 1:输入: ...

  2. 22. Leetcode 237. 删除链表中的节点 (链表-基础操作类-删除链表的节点)

    请编写一个函数,用于 删除单链表中某个特定节点 .在设计函数时需要注意,你无法访问链表的头节点 head ,只能直接访问 要被删除的节点 .题目数据保证需要删除的节点 不是末尾节点 .示例 1:输入: ...

  3. 24. Leetcode 61. 旋转链表 (链表-基础操作类-旋转链表)

    给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置.示例 1:输入:head = [1,2,3,4,5], k = 2 输出:[4,5,1,2,3] 示例 2:输入:hea ...

  4. 21. Leetcode 203. 移除链表元素 (链表-基础操作类-删除链表的节点)

    给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 .示例 1:输入:head = [1,2,6,3,4,5,6] ...

  5. 25. Leetcode 143. 重排链表 (链表-基础操作类-重排链表)

    给定一个单链表 L 的头节点 head ,单链表 L 表示为:L0 → L1 → - → Ln - 1 → Ln 请将其重新排列后变为:L0 → Ln → L1 → Ln - 1 → L2 → Ln ...

  6. LeetCode 23合并K个升序链表24两两交换链表中的节点

    维护不易,点赞再看,感谢支持 合并K个升序链表 题目描述 给你一个链表数组,每个链表都已经按升序排列. 请你将所有链表合并到一个升序链表中,返回合并后的链表. 示例 1: 输入:lists = [[1 ...

  7. Leetcode(24)——两两交换链表中的节点

    Leetcode(24)--两两交换链表中的节点 题目 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点.你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换). 示例 1: ...

  8. Java实现 LeetCode 24 两两交换链表中的节点

    24. 两两交换链表中的节点 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. 示例: 给定 1->2->3-&g ...

  9. LeetCode 24:两两交换链表中的节点、1662. 检查两个字符串数组是否相等

    今天一道是单链表一道是String类的 一:LeetCode 24:两两交换链表中的节点 先来看一下题目信息 索引 题目意思就是把一个链表中的两两节点进行交换,题目给的例子是4个节点,是偶数个,两两节 ...

最新文章

  1. 机器学习、超参数、最优超参数、网格搜索、随机搜索、贝叶斯优化、Google Vizier、Adviser
  2. make 操作技巧指南--gcc版本设置
  3. java读取配置文件的几种方法
  4. 对Flush原理的个人理解
  5. 15.centos7基础学习与积累-001
  6. 0116互联网新闻 | “DaDa英语”近日完成2.55亿美元D轮融资;腾讯推今年首个手游“闹闹天宫”...
  7. DB2 常用命令小结
  8. mysql和oracle转换_转MySql 与Oracle区别
  9. MyBatis全局配置文件和映射文件
  10. 【流媒體】live555—VS2010 下live555编译、使用及测试
  11. 从Helm仓库创建应用流程示例
  12. IOS学习笔记 ---- 15/09/02
  13. php json 存储数据格式,文件存储(一):通过 JSON 格式序列化文本数据
  14. Spark安装和编程实践(Spark2.4.0)
  15. 消息中间件RabbitMQ(五)——实现RPC调用
  16. 高斯公式(div:点乘)
  17. magicyang语录
  18. python 控制鼠标滚轮_使用 python pyautogui实现鼠标键盘控制功能
  19. IDEA报错:不支持发行版本
  20. 对于取英文变量名网站

热门文章

  1. 寻根求源 U盘的9个典型故障
  2. 面部识别辅助监控系统 人工智能为城市安全保驾护航
  3. java反射 基本知识
  4. Spring的事务管理难点剖析:应用分层的迷惑
  5. Oracle 数据库连接失败问题
  6. 进程外Session和进程内Session存储
  7. 小白学数据分析-----Excel制作INFOGRAPHIC
  8. JQuery学习笔记 [Ajax] (6-2)
  9. 测试软件Postman下载(亲测有效)
  10. oracle 空值 group by,为什么group by 没有将一样的数据合为一条