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

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;}
}

相关文章:

  • c++ opencv 形态学操作腐蚀和膨胀
  • OpenCV CUDA模块结构分析与形状描述符------在 GPU 上计算图像的原始矩(spatial moments)函数spatialMoments()
  • RV1126-OPENCV Mat理解
  • 基于React和TypeScript的金融市场模拟器开发与模式分析
  • 从 SWT Browser 迁移到 JxBrowser
  • C#·常用快捷键
  • kibana解析Excel文件,生成mapping es导入Excel
  • 职坐标AI算法实战:TensorFlow/PyTorch深度模型
  • Typora-macOS 风格代码块
  • K8S查看pod资源占用和物理机器IP对应关系
  • 小白的进阶之路系列之七----人工智能从初步到精通pytorch自动微分优化以及载入和保存模型
  • 【C++项目】:仿 muduo 库 One-Thread-One-Loop 式并发服务器
  • 解释滚动更新的过程,如何通过`kubectl set image`命令触发更新? 版本回滚的命令是什么?如何查看Deployment的更新历史?
  • 《Python 应用中的蓝绿部署与滚动更新:持续集成中的实践与优化》
  • 【VSCode-Qt】Docker远程连接的项目UI文件在 VSCode 上无法预览
  • 【基于SpringBoot的图书购买系统】操作Jedis对图书图书的增-删-改:从设计到实战的全栈开发指南
  • 聊聊 Metasploit 免杀
  • BPE、WordPiece 与 Unigram:三种主流子词分词算法对比
  • linux有效裁剪视频的方式(基于ffmpeg,不改变分辨率,帧率,视频质量,不需要三方软件)
  • C# 导出word 插入公式问题
  • 网站后台设计教程/百度云盘搜索引擎入口
  • asp.net做三个网站/谷歌seo推广
  • 怎样才能做好网站优化/武汉好的seo优化网
  • 汽车技术资料网站建设/站长工具seo排名
  • 个人网站制作过程/搜索引擎推广实训
  • wordpress本地做好如何改站点地址/网络营销管理办法