当前位置: 首页 > 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;}
}

相关文章:

  • 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全面深入学习目录
  • 京东联盟 wordpress/seo职业技能培训班
  • 青海省建设网站企业/万能搜索
  • 聊天网站建设/苏州seo关键词优化价格
  • 响应式布局的优点是什么/深圳网站设计实力乐云seo
  • 企业网站建设价格/腾讯广告推广平台
  • 化妆品营销型网站模板下载/百度搜索量最大的关键词