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

【百日算法计划】:每日一题,见证成长(013)

题目

回文链表

给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。
输入:head = [1,2,2,1]
输出:true

思路

  • 找到中间节点
  • 反转后半部分链表
  • 前后链表顺序比对
public boolean isPalindrome2(ListNode head) {if (head == null || head.next == null) return true;ListNode p = head;ListNode middleNode = findMiddleNode(p);ListNode q = reverseNode(middleNode.next); //因为要区分奇偶 所以传入中间节点的后一个节点while (q != null){if (p.val != q.val){return false;}p = p.next;q = q.next;}return true;
}//寻找中间节点
public ListNode findMiddleNode(ListNode head){ListNode p1 = head;ListNode p2 = head;while(p1 != null && p1.next != null){p1 = p1.next.next;p2 = p2.next;}return p2;
}//反转后半部分链表
public ListNode reverseNode(ListNode head){ListNode p = head;ListNode pre = null;while(p != null){ListNode tmp = p.next;p.next = pre;pre = p;p = tmp;}return pre;
}
http://www.lryc.cn/news/436571.html

相关文章:

  • PCL 读取和保存点云
  • js | TypeError: Cannot read properties of null (reading ‘indexOf’) 【解决】
  • 微信小程序-formData使用
  • 潜在语义分析(Latent Semantic Analysis,LSA)—无监督学习方法、非概率模型、判别模型、线性模型、非参数化模型、批量学习
  • 【安全漏洞】MySQL 8.0.33 、CVE-2023-22102
  • Flutter 响应式框架
  • 电脑AE特效软件 After Effects软件2017中文版下载安装指南 (Win/Mac)
  • C#中的装箱和拆箱是什么
  • 在 Debian 12 上安装中文五笔输入法
  • 整流器制造5G智能工厂物联数字孪生平台,推进制造业数字化转型
  • 算法知识点——常用输入输出数据的方式
  • 如何构建大数据治理平台,助力企业数据决策
  • Playwright与Selenium的对比:谁是更适合你的自动化测试工具?
  • Netty 相关问题
  • JAVA中线程池的详解
  • 【PyTorch单点知识】深入了解 nn.ModuleList和 nn.ParameterList模块:灵活构建动态网络结构
  • vscode创建Python虚拟环境无法激活问题处理
  • 【Go】Go语言中的基本数据类型与类型转换
  • 【Python中导入Tkinter模块创建计算器界面】
  • 中关村科金推出得助音视频鸿蒙SDK,助力金融业务系统鸿蒙化提速
  • 如何实现视频数据的PES打包和传输?
  • 【软考】程序设计语言基础
  • 野指针与空指针的异同
  • 虚拟存储器“大观”,讲解核心逻辑知识和408大题方法
  • 【AI赋能医学】基于深度学习和HRV特征的多类别心电图分类
  • 速盾:做外贸用高防cdn需要国外节点的吗?
  • 单片机中为什么要使用5v转3.3v,不直接使用3.3V电压
  • SpringBoot项目请求返回json空字段过滤
  • linux下进程详解
  • 春招审核流程优化:Spring Boot系统设计