news 2026/8/12 23:10:43

关于链表中元素的交换的操作

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
关于链表中元素的交换的操作

给定一个链表,对于每两个相邻的结点,交换其位置。

如 1->2->3->4->null,返回2->1->3->4->null

只能对结点进行操作,不能修改结点的值,只能操作结点(整个)或结点对应的指针。

分析:因为头结点没有前驱,不便于遍历,需要添加一个虚拟头结点,始终让该结点指向实际链表的头结点。

注意:想不清楚就画图,要明白每一个变量的含义和作用。其实next指针可以不用的,自己想想如何处理。

共用代码:

​ public class ListNode { public int val; public ListNode next; public ListNode(int x) { this.val = x; this.next = null; } public static ListNode createList(int[] nums) { if(null == nums || 0 == nums.length) return null; ListNode head = new ListNode(nums[0]); ListNode needle = head; for(int i = 1; i < nums.length;++i) { ListNode node = new ListNode(nums[i]); needle.next = node; needle = needle.next; needle.next = null; } return head; } }
// 24 使用虚拟头结点 public ListNode swapPairs(ListNode head) { ListNode dummyHead = new ListNode(-1); dummyHead.next = head; ListNode pre = dummyHead; // 链表必须至少两个结点才可以交换,不好理解画图会更直观 while (pre.next != null && pre.next.next != null) { // 指向待交换的第一个结点 ListNode node1 = pre.next; // 指向待交换的第二个结点 ListNode node2 = node1.next; // 记录待交换的第二个结点的下一个结点,避免剩余结点的丢失 ListNode next = node2.next; // 真正的交换,交换的是指针的指向 node2.next = node1; node1.next = next; // 移动指针,为下次交换做准备,第一个node2是新的头结点 pre.next = node2; // 指针向前移动2个位置(注意while中用的是pre.next和pre.next.next) pre = node1; } return dummyHead.next; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/11 13:21:16

如何在链表中使用双指针技术

题目&#xff1a;给定一个链表&#xff0c;删除倒数第n个结点。如 1->2->3->4->5->null&#xff0c;n2&#xff0c;返回 1->2->3->5->null。需要明确的地方&#xff1a;n从0计还是从1计&#xff1f;n不合法&#xff0c;负数或者大于连标长度如何处理…

作者头像 李华
网站建设 2026/8/12 12:34:51

征程 6P/H 计算平台部署指南

1.前言 本文旨在提供 征程 6H/P 计算平台的部署指南&#xff0c;将会从硬件、软件两部分进行介绍&#xff0c;本文整理了我们推荐的使用流程&#xff0c;和大家可能会用到的一些工具特性&#xff0c;以便于您更好地理解工具链。某个工具具体详 l 细的使用说明&#xff0c;还请…

作者头像 李华
网站建设 2026/8/11 5:49:36

F5-TTS语音合成模型:从零开始掌握配置与自定义加载

F5-TTS语音合成模型&#xff1a;从零开始掌握配置与自定义加载 【免费下载链接】F5-TTS Official code for "F5-TTS: A Fairytaler that Fakes Fluent and Faithful Speech with Flow Matching" 项目地址: https://gitcode.com/gh_mirrors/f5/F5-TTS F5-TTS作…

作者头像 李华
网站建设 2026/8/13 5:38:41

【架构演进与选型分析 】

单体架构 电商初期采用单体架构&#xff0c;所有功能集中在一个应用内&#xff0c;代码分层明确&#xff08;表示层、业务层、数据访问层、DB层&#xff09;。适合业务简单、团队规模小的场景&#xff0c;但模块依赖模糊&#xff0c;多团队开发易冲突。例如早期淘宝和eBay因代码…

作者头像 李华
网站建设 2026/8/12 8:32:07

【WRF理论第二十期】湍流与扩散(Turbulence / Diffusion)

目录 湍流与扩散(Turbulence / Diffusion) 概念解释 数学表达式解析 扩散选项 diff_opt 的控制参数说明 km_opt 参数详解:湍流扩散系数计算方法 sfs_opt 参数详解:亚网格尺度(SGS)应力模型 六阶扩散参数 diff_6th_opt:六阶水平扩散选项 `diff_6th_factor`:六阶扩散强度…

作者头像 李华
网站建设 2026/8/12 11:43:06

挖漏洞一个月赚2万多,别被骗了!

有人说挖漏洞比上班挣的还多&#xff0c;也有人说靠挖漏洞赚钱得饿死&#xff0c;2025年挖漏洞到底还能不能行&#xff1f;新手如果想挖漏洞又该怎么上手&#xff1f;一篇文章告诉你。 首先先说2025年挖漏洞的前景如何&#xff1f; 众所周知挖漏洞的白帽子是越来越多了&#x…

作者头像 李华