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

【d46】【Java】【力扣】234.回文链表

思路

判断是否是回文,需要:一个指针指向头,一个指针指向尾,两个指针一边向中间靠拢,一边判断数值是否相同

对于单链表,不方便获得pre,如果将节点放进 数组/list ,数组/list可以直接获得索引,,那么就能方便很(注意!!这是单链表需要访问pre时,常用的解决方法)

做法:

1.链表放进list中

2.设置一个指针指向头,一个指针指向尾

3.遍历size/2遍,两个指针一边判断数值是否相同,一边向中间靠拢,

代码

import java.util.ArrayList;
import java.util.Objects;public class Main {public static void main(String[] args) {}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) {//先将所有节点放进一个list():有序,有索引,长度可变//数组有索引,长度不可变ArrayList<Integer> list = new ArrayList<>();ListNode cur=head;while (cur != null) {list.add(cur.val);cur = cur.next;}//遍历size/2遍,,一个指针指向头,,一个指针指向尾//判断两个指针指向是否相同int size = list.size();int pre=0;int last=size-1;for (int i = 1; i <=size/2 ; i++) {//判断两个指针指向是否相同if (list.get(pre).equals(list.get(last))) {//如果相同,移动指针,继续判断pre++;last--;}else{return false;}}return true;}}
}

记录

总结

对于单链表,如果需要获得pre,可以节点放进 数组/list ,数组/list可以直接获得索引,,那么就能方便很(注意!!这是单链表需要访问pre时,常用的解决方法)


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

相关文章:

  • 枚举Enum使用
  • Unity中使用StartCoroutine协程和Lerp方法,使GameObject缓慢移动
  • stream学习
  • UNIX网络编程-TCP套接字编程(实战)
  • 【Excel】数据透视表分析方法大全
  • vue之axios根据某个接口创建实例,并设置headers和超时时间,捕捉异常
  • 初级前端面试
  • [Web安全 网络安全]-CSRF跨站请求伪造
  • Isaac Sim 跑Slam学习过程2024.9.20
  • Leetcode Hot 100刷题记录 -Day19(回文链表)
  • threejs加载高度图渲染点云,不支持tiff
  • 【项目管理进阶】风险问题
  • 【C语言进阶】文件操作
  • 如何成为有影响力的程序员?
  • 【GPL与LGPL】
  • [已更新]2024数学建模研赛华为杯E题详细思路代码成品文章研究生数学建模数模辅导
  • C++——类和对象(3)
  • lombok(注解@Getter @Setter)
  • 详细介绍MES系统的生产监控模块
  • 多线程篇七
  • [已更新]2024华为杯数学建模研赛A题问题一二建模代码研究生数学建模
  • linux网络-----传输层
  • expressjs 的app.use,怎么使用?
  • 数据类型转换中存在的问题分析
  • armbian debian 系统安装overlayroot后无法启用
  • Java+Spring Cloud +UniApp 智慧工地源码,用户PC端、移动端数据同步,支持多端展示