234. 回文链表 题目描述题解(将值复制到数组中后用双指针法)思路将链表的值全部提取到数组或 ArrayList中然后用双指针在数组上进行回文判断。代码classSolution{publicbooleanisPalindrome(ListNodehead){// 1. 将链表中的所有值复制到 ArrayList 中ListIntegervalsnewArrayList();ListNodecurrentNodehead;while(currentNode!null){vals.add(currentNode.val);currentNodecurrentNode.next;}// 2. 使用双指针在 ArrayList 上判断是否回文intfront0;intbackvals.size()-1;while(frontback){// 注意因为存储的是 Integer 对象严谨起见应先转换为基本类型或使用 equalsintfrontValvals.get(front);intbackValvals.get(back);if(frontVal!backVal){returnfalse;}front;back--;}//while (front back) {// if (!vals.get(front).equals(vals.get(back))) {// return false;// }// front;//back--;//}returntrue;}}复杂度分析时间复杂度O(N)O(N)O(N)。遍历一次链表提取值O(N)O(N)O(N)双指针遍历一次数组O(N/2)O(N/2)O(N/2)总体时间依然是线性的。空间复杂度O(N)O(N)O(N)。我们需要开辟一个额外的 ArrayList 来存储整条链表的值。

相关新闻

最新新闻

云手机成本优化实战:从带宽计费与资源利用率入手降本增效

云手机成本优化实战:从带宽计费与资源利用率入手降本增效

1. 从“烧钱”到“省钱”:云手机成本优化的真实困境最近和几个做云手机业务的朋友聊天,大家不约而同地都在吐槽一件事:成本。尤其是带宽和资源利用率这两块,账单上的数字每个月都像坐过山车,高得让人心惊肉跳。我们团队…

2026/8/26 9:50:59
AI智能体与云手机融合:从自动化测试到智能业务处理的新范式

AI智能体与云手机融合:从自动化测试到智能业务处理的新范式

1. 从“远程遥控”到“智能原生”:云手机的范式转移最近和几个做移动应用开发、自动化测试以及游戏工作室的朋友聊天,大家不约而同地提到了一个词:云手机。但聊着聊着,我发现一个有趣的现象——很多人对云手机的认知,还…

2026/8/26 9:50:59
探索Fuse:静态类型与函数式编程语言的融合实践

探索Fuse:静态类型与函数式编程语言的融合实践

1. 背景与核心概念最近在技术社区看到一个很有意思的新项目:Fuse,一门静态类型的函数式编程语言。从标题的Show HN可以看出,它正处于早期公开讨论阶段,但这个方向本身非常值得关注。对于写惯了 Java、Python、Go 的开发者来说&…

2026/8/26 9:50:59
OpenCode编辑器7大必备插件:从LSP到Git集成,打造高效开发环境

OpenCode编辑器7大必备插件:从LSP到Git集成,打造高效开发环境

1. 项目概述:为什么我们需要一个“插件化”的代码编辑器?在程序员的世界里,编辑器就是我们的“主战场”。从记事本到功能繁重的IDE,选择众多,但找到一个既轻量又强大、既能开箱即用又能无限扩展的“神兵利器”&#xf…

2026/8/26 9:50:59
Android主线程绑核优化:原理、实现与避坑指南

Android主线程绑核优化:原理、实现与避坑指南

1. 项目概述:为什么要把主线程“钉”在大核上? 最近在优化一个Android应用时,发现一个挺有意思的现象:应用启动和滑动列表时,偶尔会有那么几帧掉得莫名其妙,明明CPU占用率不高,但就是感觉“卡了…

2026/8/26 9:50:59
模拟ASIC实战经验:从版图匹配到量产测试的避坑指南

模拟ASIC实战经验:从版图匹配到量产测试的避坑指南

搞模拟ASIC的人大概都有过这种体验:流片回来,板子焊好,上电测第一个关键信号,结果波形跟仿真对不上。不是偏差几个毫伏的问题,而是整个工作点都飘了,找半天原因,最后发现是版图匹配没做好&#…

2026/8/26 9:45:59