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

LCR 027

题目:LCR 027


解法一:快慢指针 + 反转链表

  1. 取中间节点的下一节点,即为链表后半部分。当链表为(1,2,3,4,null)时,取节点3。当链表为(1,2,3,4,5,null)时,取节点4
  2. 反转后半部分链表
  3. 前半链表与后半链表同时开始向后遍历,验证回文串
  4. 恢复链表
    public boolean isPalindrome(ListNode head) {if (head == null || head.next == null) return true;ListNode slow = head, fast = head;while (fast.next != null && fast.next.next != null) {slow = slow.next;fast = fast.next.next;}ListNode reverse = reverseList(slow.next), node1 = head, node2 = reverse;while (node2 != null) {if (node2.val != node1.val) return false;node2 = node2.next;node1 = node1.next;}reverseList(reverse);return true;}public ListNode reverseList(ListNode head) {ListNode prev = null, curr = head, next;while (curr != null) {next = curr.next;curr.next = prev;prev = curr;curr = next;}return prev;


http://www.mrgr.cn/news/30511.html

相关文章:

  • 圣多纳释放法,达到内心的平静
  • [2025]医院健康陪诊系统(源码+定制+服务)
  • 第三十五条:使用实例字段代替序号
  • 毕业论文写作会用到的AI软件!一定不能错过的18个网站!(务必收藏)
  • 单细胞代谢组学数据分析利器---SCMeTA
  • JavaDS —— 图
  • 数据结构-3.3.栈的链式存储实现
  • 探索RESTful风格的网络请求:构建高效、可维护的API接口【后端 20】
  • sql语句练习
  • Mybatis 快速入门(maven)
  • C++标准的一些特性记录:C++11的thread_local
  • 傅里叶变换的基本性质和有关定理
  • 【电路笔记】-运算放大器比较器
  • 大牛直播SDK核心音视频模块探究
  • C++的初阶模板和STL
  • 前端常用的主流框架有哪些
  • 诗文发布模板(python代码打造键盘录入诗文自动排版,MarkDown源码文本)
  • javascript中栈内存与堆内存如何理解?以及如何区分?
  • @JsonFormat 和 @DateTimeFormat 的区别
  • 将有序数组——>二叉搜索树