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

day13 leetcode-hot100-24(链表3)

234. 回文链表 - 力扣(LeetCode)

1.转化法

思路

        将链表转化为列表进行比较

复习到的知识

        arraylist的长度函数:list.size()

具体代码
/*** 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 boolean isPalindrome(ListNode head) {ListNode n = head;List<Integer> list = new ArrayList<>();while(n!=null){list.add(n.val);n=n.next;}int l=0;int r=list.size()-1;while(l<r){if(list.get(l)!=list.get(r)){return false;}l++;r--;}return true;}
}

 2.反转法

思路

        将后半段链表反转,然后进行比较。

知识

        取单链表的中间节点:快慢指针

具体代码
/*** 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 boolean isPalindrome(ListNode head) {ListNode n1 = secondL(head);ListNode n2 = reverseL(n1.next);ListNode p1 = head;ListNode p2 = n2;while(p2!=null){if(p1.val != p2.val){return false;}p1=p1.next;p2=p2.next;}return true;}public ListNode reverseL(ListNode l){ListNode old = null;ListNode current = l;while(current!=null){ListNode tem = current.next;current.next = old;old =current;current= tem;}return old;}public ListNode secondL(ListNode l){ListNode slow = l;ListNode fast = l;while(fast.next!=null && fast.next.next!=null){slow = slow.next;fast = fast.next.next;}return slow;}
}

http://www.lryc.cn/news/2393067.html

相关文章:

  • Python实战:打造高效通讯录管理系统
  • 图解深度学习 - 基于梯度的优化(梯度下降)
  • MySql--定义表存储引擎、字符集和排序规则
  • 【部署】在离线服务器的docker容器下升级dify-import程序
  • 优化版本,增加3D 视觉 查看前面的记录
  • 写作-- 复合句练习
  • WWW22-可解释推荐|用于推荐的神经符号描述性规则学习
  • Linux:shell脚本常用命令
  • 专业课复习笔记 11
  • OpenTelemetry × Elastic Observability 系列(一):整体架构介绍
  • STM32高级物联网通信之以太网通讯
  • 从Java的Jvm的角度解释一下为什么String不可变?
  • 从零开始的数据结构教程(四) ​​图论基础与算法实战​​
  • 历年西安交通大学计算机保研上机真题
  • 可视化与动画:构建沉浸式Vue应用的进阶实践
  • Python |GIF 解析与构建(3):简单哈希压缩256色算法
  • 蓝桥杯2114 李白打酒加强版
  • 基本数据指针的解读-C++
  • Android Studio里的BLE数据接收策略
  • 【Office】Excel两列数据比较方法总结
  • 基于多模态脑电、音频与视觉信号的情感识别算法【Nature核心期刊,EAV:EEG-音频-视频数据集】
  • 【QueryServer】dbeaver使用phoenix连接Hbase(轻客户端方式)
  • 数据湖 (特点+与数据仓库和数据沼泽的对比讲解)
  • 深入链表剖析:从原理到 C 语言实现,涵盖单向、双向及循环链表全解析
  • 编码总结如下
  • 《算力觉醒!ONNX Runtime + DirectML如何点燃Windows ARM设备的AI引擎》
  • [9-1] USART串口协议 江协科技学习笔记(13个知识点)
  • Oracle基础知识(五)——ROWID ROWNUM
  • 简述synchronized和java.util.concurrent.locks.Lock的异同 ?
  • OpenCV CUDA模块直方图计算------在 GPU 上计算图像直方图的函数calcHist()