首页 > 编程语言 >链表的回文判断—Java实现

链表的回文判断—Java实现

时间:2023-04-07 23:25:19浏览次数:41  
标签:head return stringBuilder 链表 frontNode Java ListNode public 回文

对于这个题,主要是老是局限于方法内的变量,未想到借助外部变量辅助:具如下,不可用数除法,会溢出异常:即使是取最大的long也会溢出,常规方法不再赘述,具体以代码如下:

 1 package ProblemSolve;
 2 
 3 public class Solution5 {
 4     private ListNode frontNode;
 5     public boolean isPalindrome(ListNode head) {
 6         StringBuilder stringBuilder = new StringBuilder();
 7         while (head != null) {
 8             stringBuilder.append(head.val);
 9             head = head.next;
10         }
11         String str=new String(stringBuilder);
12         String strReverse=new String(stringBuilder.reverse());
13         return str.equals(strReverse);
14     }
15     public boolean isPalindrome2(ListNode head) {
16 ;       frontNode=head;
17         return reverseList(head);
18     }
19     public boolean reverseList(ListNode head){
20         if (head!=null){
21             if (!reverseList(head.next))
22                 return false;
23             if (head.val!=frontNode.val)
24                 return false;
25             frontNode=frontNode.next;
26         }
27         return true;
28     }
29 }

没写注释抱歉!!

 

标签:head,return,stringBuilder,链表,frontNode,Java,ListNode,public,回文
From: https://www.cnblogs.com/Mexcellent/p/17297659.html

相关文章

  • 定义Person类包含两个成员变量,结构体构造方法---Java
    packagepracticeHomework;/**定义一个Person类,含有一个String类型的成员变量和一个int型成员变量*分别为这两变量定义访问方法和修改方法*再为该类定义一个speak的方法,输出name和age的值**编写程序,使用Person类,实现数据的访问的修改*/publicclassPerson{......
  • 【并发编程】Java7 - ForkJoin,将大任务拆分成小任务
    1.简介  Java7提供了可以将大任务拆分成小任务执行再合并结果的框架——Fork/Join。其中,将大任务拆分成足够执行的小任务并发执行的过程称为Fork,将这些小任务结果整合后形成最终的结果的过程称为Join。  Fork/Join框架的具体体现为ForkJoinTask抽象类,该类继承了Future,运行......
  • ReflectASM高性能反射Java库
    1.简介  在日常开发中,经常需要使用反射操作类中的属性或方法。ReflectASM是一个非常小的Java库,它提供高性能反射能力。  Github地址:https://github.com/EsotericSoftware/reflectasm2.官方性能报告3.用法ReflectASM仅可访问public属性和方法。pom引入依赖<de......
  • 【Java 并发】【九】【AQS】【八】ReentrantReadWriteLock 读写锁怎么表示
    1 前言接下来我们来看看ReentrantReadWriteLock读写锁,也是基于之前讲解的AQS来实现的,建立在AQS体系之上的一个并发工具类,这个锁很重要,在很多开源的中间件中使用的非常广泛,很多场景使用它来减少并发操作中的锁冲突,提升并发能力。2  ReentrantReadWriteLock介绍ReentrantRead......
  • Java入门
    一、Java特性和优势1.简单性:不用像C语言那样引用头文件,抛弃了指针2.面向对象3.可移植性:可以跨平台移植,一次编写多次运行4.高性能:即时编译5.分布式6.动态性:反射机制7.多线程8.安全性9.健壮性二、Java三大版本1.JavaSE:标准版(桌面开发,控制台开发等)2.JavaME:嵌入式开发(......
  • Java ClickHouse整合—官方教程
    一、开发环境OpenJDK版本>=17ClickHouse:20.7+ 1、支持的数据类型FormatSupportCommentAggregatedFunction❌limitedto groupBitmap,andknowntohaveissuewith64bitbitmapArray(*)✅Bool✅Date*✅DateTime*✅Decimal*✅SEToutput_format_decimal_trailing_zeros=1 in......
  • Java学习路径
    一、Java学习路径   1.JavaSE  2.数据库   3.前端  4.JavaWeb  5.SSM框架  6.Linux  7.SpringBoot  8.SpringCloud  9.Hadoop......
  • [Javascript] Improve performance of Array.reduce
    Comparetwocodesnippetconstpeople=[{id:1,name:'John',age:45},{id:2,name:"Op",age:32},{id:3,name:"Wade",age:39}]//option1constres=people.reduce((acc,curr)=>{return({......
  • JAVA - 面向对象编程
    面向对象是在之前基本实现的基础上的又一抽象,这里的“高内聚,低耦合”体现的更加明显,有抽丝剥茧、不断总结的感觉了。学习的时候真的会有拨开云雾见月明的感觉,这种感觉真的会上瘾。你慢慢发现所有的东西都在以自己的规律运转,发现验证使用,真的很有《实践论》的味道。我能做些......
  • java -- Math、BigInteger、BigDecimal类和基本类型的包装类、正则表达式
    Mathjava.lang.Math类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。类似这样的工具类,其所有方法均为静态方法,并且不会创建对象,调用起来非常简单。Math.PI//静态常量publicstaticfinaldoublePI=3.14159265358979323846;abs//返回参数的绝对......