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

day16 leetcode-hot100-30(链表9)

24. 两两交换链表中的节点 - 力扣(LeetCode)

1.模拟法

思路

模拟题目要求进行两两交换,但有一点需要注意,比如交换3与4后,1仍然指的是3,这是不正确的,所以1指针的next也需要修改,所以每次模拟是操作3个节点。

具体思路

(1)创建哨兵节点dump,减少除了头节点这个特殊情况,dump用于返回,再创建temp进行模拟。

(2)当temp.next与temp.next.next只要有一个为null就不进行循环。

(3)修改n1,n2,temp的next,使其满足要求,先让n1指向n2.next,防止节点丢失。

具体代码
/*** 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 dump = new ListNode(0,head);ListNode temp = dump;while(temp.next!=null && temp.next.next!=null){ListNode n1 =temp.next;ListNode n2 =temp.next.next;n1.next=n2.next;n2.next=n1;temp.next=n2;temp=n1;}return dump.next;}
}

相关文章:

  • 开源版 PyMOL 如何绘制 新冠病毒 分子结构?
  • NX811NX816美光颗粒固态NX840NX845
  • Debian上安装PostgreSQL的故障和排除
  • 1Remote远程会话管理以及一键启动虚拟机
  • 攻防 FART 脱壳:特征检测识别 + 对抗绕过全解析
  • 终结电源反接与压降损耗:理想二极管控制器深度解析
  • 前端基础学习html+css+js
  • ​​技术深度解析:《鸿蒙5.0+:全场景能效的产业革命》​
  • 第二章 机器学习基本概念
  • Vue组件定义
  • 爱其实很简单
  • AtCoder Beginner Contest 399题目翻译
  • 看问题的本质背后是什么?
  • 《操作系统真相还原》——进入内核
  • 自编码器Auto-encoder(李宏毅)
  • Git深入解析功能逻辑与核心业务场景流程
  • 【Redis】数据类型补充
  • [GESP202412 五级] 奇妙数字
  • 017搜索之深度优先DFS——算法备赛
  • 任务23:创建天气信息大屏Django项目
  • 北京的网站建设公司有哪些/优化关键词排名seo软件
  • 网站建设 软文/线上运营的5个步骤
  • 做网站用什么好/百度开放平台登录
  • 网络教学平台长沙理工大学/seo一个月赚多少钱
  • 兰州城建设计院网站/企业营销推广
  • 深圳市人民政府网站/黄山seo