如何在Java单链表中查找目标值的最后出现索引

碧海醫心

碧海醫心

2026-05-27

731人浏览

原创

如何在Java单链表中查找目标值的最后出现索引

本文详解如何在不借助辅助方法的前提下,遍历单链表并准确返回指定整数值最后一次出现的索引位置;核心在于边遍历边更新匹配索引,确保返回的是最后一个而非首个匹配项。

本文详解如何在不借助辅助方法的前提下,遍历单链表并准确返回指定整数值最后一次出现的索引位置;核心在于边遍历边更新匹配索引,确保返回的是最后一个而非首个匹配项。

在实现 lastIndexOf(int value) 方法时,关键挑战有两个:一是必须返回索引(位置)而非节点值,二是必须定位最后一次出现的位置,而非遇到第一个匹配就立即返回。由于单链表只能单向遍历,无法从尾部反向查找,因此需采用“一次正向扫描 + 动态记录”的策略:遍历过程中维护一个变量,每次发现匹配值时就用当前索引覆盖它;遍历结束后,该变量自然保存的就是最后一次匹配的索引。

以下是符合题目要求的标准实现(假设 ListNode 结构为 int data; ListNode next):

public int lastIndexOf(int value) {
    ListNode current = front;
    int lastIndex = -1;  // 初始化为-1,表示未找到
    for (int index = 0; current != null; index++) {
        if (current.data == value) {
            lastIndex = index;  // 每次匹配都更新,最终保留最后一次
        }
        current = current.next;
    }
    return lastIndex;
}

该实现时间复杂度为 O(n),空间复杂度为 O(1),严格满足题目限制——不调用其他方法、不使用额外数据结构。注意:索引从 0 开始计数,与数组和多数编程语言惯例一致。例如,对于链表 [1, 18, 2, 7, 18, 39, 18, 40],调用 lastIndexOf(18) 将依次在索引 1、4、6 处匹配,并最终返回 6;若值不存在(如 lastIndexOf(3)),lastIndex 始终保持 -1,直接返回。

Java Linux版
Java Linux版

Java Linux版下载入口,提供 Oracle JDK 26.0.2 官方 Linux 安装包、Java 环境配置、JDBC 数据库连接和 Java 服务端开发相关信息。

下载

⚠️ 常见错误提醒:

  • ❌ 不要在首次匹配时 return index(这会提前终止,仅返回首次位置);
  • ❌ 不要将 target 初始化为未定义值或 0(应显式初始化为 -1,体现“未找到”语义);
  • ❌ 不要混淆 current.data 与 index(前者是值,后者才是题目要求的返回结果)。

掌握此模式后,可轻松迁移至泛型链表或带哨兵节点的变体——核心思想始终是:遍历中延迟返回,用状态变量捕获最终有效信息

Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南

相关专题

更多
java
java

Java是一个通用术语,用于表示Java软件及其组件,包括“Java运行时环境 (JRE)”、“Java虚拟机 (JVM)”以及“插件”。php中文网还为大家带了Java相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.15

3744

6

java正则表达式语法
java正则表达式语法

java正则表达式语法是一种模式匹配工具,它非常有用,可以在处理文本和字符串时快速地查找、替换、验证和提取特定的模式和数据。本专题提供java正则表达式语法的相关文章、下载和专题,供大家免费下载体验。

2023.07.05

2775

9

java自学难吗
java自学难吗

Java自学并不难。Java语言相对于其他一些编程语言而言,有着较为简洁和易读的语法,本专题为大家提供java自学难吗相关的文章,大家可以免费体验。

2023.07.31

2799

8

java配置jdk环境变量
java配置jdk环境变量

Java是一种广泛使用的高级编程语言,用于开发各种类型的应用程序。为了能够在计算机上正确运行和编译Java代码,需要正确配置Java Development Kit(JDK)环境变量。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.08.01

636

3

java保留两位小数
java保留两位小数

Java是一种广泛应用于编程领域的高级编程语言。在Java中,保留两位小数是指在进行数值计算或输出时,限制小数部分只有两位有效数字,并将多余的位数进行四舍五入或截取。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.08.02

601

3

java基本数据类型
java基本数据类型

java基本数据类型有:1、byte;2、short;3、int;4、long;5、float;6、double;7、char;8、boolean。本专题为大家提供java基本数据类型的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.02

705

5

java有什么用
java有什么用

java可以开发应用程序、移动应用、Web应用、企业级应用、嵌入式系统等方面。本专题为大家提供java有什么用的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.02

1289

5

java在线网站
java在线网站

Java在线网站是指提供Java编程学习、实践和交流平台的网络服务。近年来,随着Java语言在软件开发领域的广泛应用,越来越多的人对Java编程感兴趣,并希望能够通过在线网站来学习和提高自己的Java编程技能。php中文网给大家带来了相关的视频、教程以及文章,欢迎大家前来学习阅读和下载。

2023.08.03

18844

3

配置java环境变量
配置java环境变量

配置Java环境变量是为了让操作系统能够识别和使用Java的相关命令和功能。本专题为大家提供配置java环境变量相关文章,帮助大家解决问题。

2023.08.03

646

8

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Java JDBC数据库连接官方教程
Java JDBC数据库连接官方教程

共0课时 | 0人学习

Java 26官方文档
Java 26官方文档

共0课时 | 0人学习