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

leetcode.24. 两两交换链表中的节点

题目

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。

你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。

思路

创建虚拟头节点,画图,确认步骤。
1221

实现

/*** 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) {if(head == null || head.next == null) return head;ListNode dummy = new ListNode(0);ListNode p = dummy;dummy.next = head;ListNode i = head;ListNode j = head.next;// i 是第一个节点 j是第二个节点//一轮下来 i!=null 且 j != null 就可以进行循环while(i !=null && j != null){ListNode temp = j.next;//实际的交换步骤p.next = j;j.next = i;i.next = temp;p = i;i = temp;//这里是为了防止下面出现NPE。//当移动指针准备下一轮循环的时候,发现第一个已经是null,可以直接返回退出循环了if(i == null){continue;}j = temp.next;}return dummy.next;}
}
http://www.lryc.cn/news/332559.html

相关文章:

  • 后端开发框架Spring Boot快速入门
  • I2C驱动实验:验证所添加的I2C设备的设备节点
  • 160 Linux C++ 通讯架构实战14,epoll 反应堆模型
  • 根据mysql的执行顺序来写select
  • spring 和spring boot的区别
  • Day84:服务攻防-端口协议桌面应用QQWPS等RCEhydra口令猜解未授权检测
  • 视频分块上传Vue3+SpringBoot3+Minio
  • 深入浅出 -- 系统架构之单体到分布式架构的演变
  • 每日一题 第七十期 洛谷 [蓝桥杯 2020 省 AB2] 回文日期
  • 蓝桥杯第十四届C++A组(未完)
  • 职场口才提升之道
  • 【算法练习】28:选择排序学习笔记
  • 【关于窗口移动求和的两种计算方法】
  • Win10文件夹共享(有密码的安全共享)(SMB协议共享)
  • Client sent an HTTP request to an HTTPS server
  • Springboot传参要求
  • 数字乡村创新实践探索:科技赋能农业现代化与乡村治理体系现代化同步推进
  • C语言——找单身狗1
  • Day82:服务攻防-开发组件安全Solr搜索Shiro身份Log4j日志本地CVE环境复现
  • 网络协议——VRRP(虚拟路由冗余协议)原理与配置
  • Elasticsearch:我们如何演化处理二进制文档格式
  • 第八讲 Sort Aggregate 算法
  • clickhouse MPPDB数据库--新特性使用示例
  • MATLAB多级分组绘图及图例等细节处理 ; MATLAB画图横轴时间纵轴数值按照不同sensorCode分组画不同sensorCode的曲线
  • 20240405,数据类型,运算符,程序流程结构
  • Prometheus+grafana环境搭建Nginx(docker+二进制两种方式安装)(六)
  • 贝叶斯逻辑回归
  • Win10 下 Vision Mamba(Vim-main)的环境配置(libcuda.so文件无法找到,windows系统运行失败)
  • 4 万字全面掌握数据库、数据仓库、数据集市、数据湖、数据中台
  • Leetcode 64. 最小路径和