当前位置: 首页 > news >正文

24. 两两交换链表中的节点(Java)

目录

  • 题目描述:
  • 示例 :
  • 代码实现:

题目描述:

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

示例 :

在这里插入图片描述

输入:head = [1,2,3,4]
输出:[2,1,4,3]

代码实现:

/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val = val; }* ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode swapPairs(ListNode head) {ListNode dummy = new ListNode();dummy.next = head;// 虚拟头节点,指向headListNode cur = dummy;// 偶数个数节点后继为空时结束,奇数个数节点后继的后继为空时结束while (cur.next != null && cur.next.next != null) {ListNode temp = cur.next;// 保存当前后继ListNode temp1 = cur.next.next.next;// 保存当前后继的后继的后继// 开始交换,当前cur之后的两个节点cur.next = cur.next.next;// 当前节点指向其后继的后继cur.next.next = temp;// 当前后继指向临时节点temp,即交换之后的靠后节点temp.next = temp1;// 临时节点temp指向临时节点temp1// 更新cur的位置cur = cur.next.next;// cur更新到下一轮交换的两个节点的前驱}return dummy.next;// 返回虚拟头节点的后继}
}
http://www.lryc.cn/news/416521.html

相关文章:

  • linux虚拟机设置固定ip
  • mysql问题解决
  • 类和对象(下)C++
  • 常用在线 Webshell 查杀工具推荐
  • RPC远程调用框架Dubbo
  • 基于STM32的智能灌溉系统
  • Datawhale AI 夏令营 Task3(半成品,仍在学习理解
  • 细腻呵护静音生活缓冲器,家具中的隐形侍者
  • 【MATLAB源码-第243期】基于simulink的CUK斩波电路仿真,输出各节点波形。
  • springboot项目不能同时跑junit4和junit5的解决方法
  • 【IO】使用消息队列完成两个进程之间相互通信
  • Web开发:用C#的逻辑理解VUE语法(VUE + Webapi小白开发笔记)
  • 操作系统文件位置指针
  • 设计模式的概念
  • VMware17下载与安装
  • mv命令学习
  • 西北航天基地采用Infortrend NAS存储做影视后期及共享
  • GitHub每日最火火火项目(8.6)
  • LangChain与CI/CD的无缝对接:自动化部署的新前沿
  • Laravel为什么会成为最优雅的PHP框架?
  • LabVIEW中的Reverse String函数与字节序转换
  • 用OpenCV与MFC写一个简单易用的图像处理程序
  • go语言的actor框架和air工具有什么区别?
  • e6.利用 docker 快速部署自动化运维平台
  • 回顾前面刷过的算法(4)
  • SourceTree配置多个不同Remote地址的仓库
  • 【Golang 面试 - 进阶题】每日 3 题(十三)
  • 自定义线程池(二)
  • 【Linux】常见指令
  • uniapp自定义网格布局用于选择金额、输入框焦点事件以及点击逻辑实战