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

news2024/11/26 4:32:15

目录

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

题目描述:

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

示例 :

在这里插入图片描述

输入: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;// 虚拟头节点,指向head
        ListNode 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.coloradmin.cn/o/1985853.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于飞腾E2000的科东软件Intewell工业实时操作系统方案

科东软件Intewell工业实时操作系统是完全自主开发的产品,具有20年以上行业应用经验。Intewell基于微内核架构设计,具备高实时、高可靠等特点,同时虚拟化技术支持GPOSRTOS等多种操作系统架构,可实现实时和非实时业务融合应用&#…

揭秘LoRA:利用深度学习原理在Stable Diffusion中打造完美图像生成的秘密武器

文章目录 引言LoRA的原理LoRA在角色生成中的应用LoRA在风格生成中的应用LoRA在概念生成中的应用LoRA在服装生成中的应用LoRA在物体生成中的应用结论 引言 在生成式人工智能领域,图像生成模型如Stable Diffusion凭借其出色的生成效果和广泛的应用场景,逐…

渲染技术如何应对数据增长与计算挑战

随着科技的飞速发展,数字内容的制作与呈现变得日益复杂和精细,这对渲染技术提出了前所未有的挑战。特别是在数据爆炸式增长和计算需求急剧提升的背景下,如何优化渲染技术,以应对这些挑战,成为了一个亟待解决的问题。 …

牛客JS题(二十三)判断质数

注释很详细&#xff0c;直接上代码 涉及知识点&#xff1a; 原型链如何优雅的判断质数 题干&#xff1a; 我的答案 <!DOCTYPE html> <html><head><meta charsetutf-8></head><body><script type"text/javascript">/*** 素…

试用期没烦恼 神器!!!使用doxygen+Graphviz自动生成函数调用关系图

大家好&#xff0c;我是 小杰学长 使用doxygenGraphviz自动生成函数调用关系图 gitee源码仓库链接跳转 前言 1.下载 首先&#xff0c;下载2个软件&#xff0c; 最新版即可&#xff0c; Doxygen 下载地址&#xff1a; https://sourceforge.net/projects/doxygen/ 下载步骤…

OLAP技术与数据仓库:深度分析与决策支持

目录 一、OLAP 概述 二、OLAP应用场景 三、OLAP对数据仓库的意义 一、OLAP 概述 OLAP&#xff08;Online Analytical Processing&#xff09;即联机分析处理&#xff0c;是一种用于多维数据分析的技术和工具。它允许用户通过多维数据模型进行复杂的分析&#xff0c;以便快速浏览…

sqli-labs(超详解)——Lass32~Lass38

Lass32&#xff08;宽字节注入&#xff09; 源码 function check_addslashes($string) {$string preg_replace(/. preg_quote(\\) ./, "\\\\\\", $string); //escape any backslash$string preg_replace(/\/i, \\\, $string); …

【iOS】——AutoReleasePool底层原理及总结

自动释放池 AutoreleasePool自动释放池用来延迟对象的释放时机&#xff0c;将对象加入到自动释放池后这个对象不会立即释放&#xff0c;等到自动释放池被销毁后才将里边的对象释放。 自动释放池的生命周期 从程序启动到加载完成&#xff0c;主线程对应的runloop会处于休眠状…

C++初学(11)

不知不觉就第11篇了QWQ 11.1、指针和自由存储空间 之前提到了计算机程序在存储数据时必须跟踪的3个基本属性&#xff1a; &#xff08;1&#xff09;信息存储在何处&#xff1b; &#xff08;2&#xff09;存储的值为多少&#xff1b; &#xff08;3&#xff09;存储的信息…

GitHub爆赞的Web安全防护指南,网络安全零基础入门必备教程!

web安全现在占据了企业信息安全的很大一部分比重&#xff0c;每个企业都有对外发布的很多业务系统&#xff0c;如何保障web业务安全也是一项信息安全的重要内容。 然而Web 安全是一个实践性很强的领域&#xff0c;需要通过大量的练习来建立对漏洞的直观认识&#xff0c;并积累…

xtrabackup搭建MySQL 8.0 主从复制

xtrabackup搭建MySQL 8.0 主从复制 安装MySQL 8.0.37安装xtrabackupGTIDs初始化从库参考&#xff1a;GTID概述GTID相较与传统复制的优势GTID自身存在哪些限制GTID工作原理简单介绍如何开启GTID复制GTID与传统模式建立复制时候语句的不同点传统复制GTID复制 GTID同步状态简单解析…

Docker技术背景与应用:解决现代开发中的关键问题

目录 Docker技术背景与应用&#xff1a;解决现代开发中的关键问题 一、Docker的技术背景 1. 什么是Docker&#xff1f; 2. Docker的核心组件 3. Docker的历史发展 二、Docker解决了哪些问题&#xff1f; 1. 环境一致性问题 2. 依赖管理问题 3. 部署复杂性问题 4. 资源…

微信小程序实现上传照片功能

案例&#xff1a; html: <view class"zhengjianCont fontSize30" style"margin-bottom: 40rpx;"><view class"kuai"><image binderror"imageOnloadError" bind:tap"upladPhoto" data-params"business…

二叉树——2.对称二叉树

力扣题目链接 给定一个二叉树&#xff0c;检查它是否是镜像对称的。 示例&#xff1a; 上述的二叉树就是对称的。 在做二叉树题目时&#xff0c;最重要的是你要找到题目中的二叉树是怎么遍历的。本题中要检查二叉树是否镜像对称&#xff0c;这就不是单独判断某个父节点的左右…

Java二十三种设计模式-策略模式(13/23)

策略模式&#xff1a;灵活算法的替换与扩展 引言 策略模式&#xff08;Strategy Pattern&#xff09;是一种行为型设计模式&#xff0c;它定义了算法族&#xff0c;分别封装起来&#xff0c;让它们之间可以互相替换&#xff0c;此模式让算法的变化独立于使用算法的客户。 基础…

menuconfig+Kconfig的简单配置

目录 1.背景 2.管理方案 2.1&#xff1a;.h中直接定义 2.2&#xff1a;.batCmake 2.3&#xff1a;Kconfig 2.3.1 环境安装 2.3.2 代码 2.3.2.1 目录结构 2.3.2.2 ble目录下的Kconfig 2.3.2.3 hardware目录下的Kconfig 2.3.2.4 rtos目录下的Kconfig 2.3.2.5 根目录 …

【性能】console.log引起内存泄漏

如下代码中的console.log会引起内存泄漏 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Example<…

降级、熔断、限流学习笔记

1. 面对高流量出现故障的原因 由于依赖的资源或者服务不可用&#xff0c;最终导致整体服务宕机。在电商系统中就可能由于数据库访问缓慢&#xff0c;导致整体服务不可用。 乐观地预估了可能到来的流量&#xff0c;当有超过系统承载能力的流量到来时&#xff0c;系统不堪重负&a…

Vue.js 3.x 必修课|008|计算属性:提高代码服用性和可维护性

欢迎关注公众号:CodeFit。 创作不易,如果你觉得这篇文章对您有帮助,请不要忘了 点赞、分享 和 关注,为我的 持续创作 提供 动力! 欢迎订阅《Vue 3.x 必修课| 2024》:http://t.csdnimg.cn/hHRrM 精品内容,物超所值,一杯咖啡的价格(9.9 元)只为持续创作提供动力。 在 …

【AI】人工智能时代,程序员如何保持核心竞争力?

目录 程序员在AI时代的应对策略1. 引言2. AI在编程领域的影响2.1 AI辅助编程工具的现状2.2 AI对编程工作的影响2.3 程序员的机遇与挑战 3. 深耕细作&#xff1a;专注领域的深度学习3.1 专注领域的重要性3.2 深度学习的策略3.2.1 选择合适的领域3.2.2 持续学习和研究3.2.3 实践与…