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

234. 回文链表

题目:
给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。

示例1:
在这里插入图片描述
输出true

示例2:
在这里插入图片描述
输出false

解题思路:
这道题主要考察两个点:寻找链表中间节点和反转链表。
找到中间节点后,我们反转右半部分链表,然后一次比较左边链表和反转后的右边链表,如果值不相等则不是回文链表。

/*** 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 mid = middleNode(head);ListNode p = reverseList(mid.next);ListNode q = head;while(p != null){if(p.val != q.val){return false;}p = p.next;q = q.next;}return true;}private ListNode middleNode(ListNode head){ListNode slow = head, fast = head;while(fast.next != null && fast.next.next != null){slow = slow.next;fast = fast.next.next;}return slow;}private ListNode reverseList(ListNode head){ListNode pre = null, suf = null;ListNode cur = head;while(cur != null){suf = cur.next;cur.next = pre;pre = cur;cur = suf;}return pre;}
}
http://www.dtcms.com/a/251161.html

相关文章:

  • AI驱动SEO关键词精准布局
  • Java微服务框架技术选型全景报告
  • JSONP 跨域请求原理解析与实践
  • LeetCode--31.下一个排列
  • 【编程语言】从C++到Java到Golang,语法特性对比与开发实践指南(基础语法,类型系统,运行机制)
  • 从零开始掌握 Docker:核心命令与实践指南
  • 哈希函数结构:从MD到海绵的进化之路
  • npm install报错
  • MAZANOKE:一款隐私优先的浏览器图像优化工具及Docker部署指南
  • JVM——JVM中的扩展之道
  • ubuntu 22.04 安装部署kibana 7.10.0详细教程
  • leetcode 分割回文串 java
  • 深度对话:TensorFlow与PyTorch的API哲学——如何影响你的模型调试与生产部署?
  • Node.js 中两种模块导出方式区别
  • 数据质量-如何构建高质量的大模型数据集
  • .net6接口多个实现类使用特性标记并解析
  • JavaScript 与 Vue 键盘事件全面指南(Composition API + <script setup>)
  • [AAAI Oral] 简单通用的公平分类方法
  • WebRTC(四):STUN协议
  • Redis全面深入学习目录
  • 02-D3.js 控制横向柱图切换数据带动画效果
  • 微信小程序使用computed
  • Python文件与目录操作管理详解
  • 【系统分析师】2011年真题:综合知识-答案及详解
  • 条件收敛的级数中项必须趋于 0,正负项抵消,但趋于 0 的速度不需要“足够快”
  • 《仿盒马》app开发技术分享-- 回收金提现安全锁校验(端云一体)
  • Java基础复习之继承
  • 【鸿蒙初级】
  • EventSourcing.NetCore:基于事件溯源模式的 .NET Core 库
  • Flutter包管理与插件开发完全指南