如何用JAVA编写代码检测字符串是否为回文串,并实现单链表来辅助判断?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2977个文字,预计阅读时间需要12分钟。
一. 需求+使用JAVA实现单链表,使用单链表检测字符串是否是回文串二. 需求分析+回文串最重要的就是对称,那么最关键的问题就是找到那个中心点,用快指针每步走两格,慢指针每步走一格,当慢指针到链表末尾时,快指针就到达中心,然后比较两端对称位置的字符是否相同
一.需求
使用JAVA实现单链表,使用单链表检测字符串是否是回文串
二.需求分析
回文串最重要的就是对称,那么最重要的问题就是找到那个中心,用快指针每步走两格,当他到达链表末端的时候,慢指针刚好到达中心,慢指针在遍历过程中(快指针到达末端时)把走过的节点进行反向操作,此时从中位点分为前后两部分,此时前半部分的指针开始往回指(取next的时候,取的是前一个节点),而慢指针继续向前,跟前半部分的数据依次进行比对,当慢指针扫完整个链表,就可以判断这是回文串,否则就提前退出,同时在前半部分往回遍历的过程中将前半部分的指针重置成正向。
链表存在奇偶数情况。
奇数的时候,快指针遍历到末端的时候,中点位即中间位置的点,此中位点下一个节点为后半部分比对开始的位置。
偶数的时候,快指针遍历到末端的时候,中点位置此时为下中位点,此中位点就是后半部分比对开始的位置。
本文共计2977个文字,预计阅读时间需要12分钟。
一. 需求+使用JAVA实现单链表,使用单链表检测字符串是否是回文串二. 需求分析+回文串最重要的就是对称,那么最关键的问题就是找到那个中心点,用快指针每步走两格,慢指针每步走一格,当慢指针到链表末尾时,快指针就到达中心,然后比较两端对称位置的字符是否相同
一.需求
使用JAVA实现单链表,使用单链表检测字符串是否是回文串
二.需求分析
回文串最重要的就是对称,那么最重要的问题就是找到那个中心,用快指针每步走两格,当他到达链表末端的时候,慢指针刚好到达中心,慢指针在遍历过程中(快指针到达末端时)把走过的节点进行反向操作,此时从中位点分为前后两部分,此时前半部分的指针开始往回指(取next的时候,取的是前一个节点),而慢指针继续向前,跟前半部分的数据依次进行比对,当慢指针扫完整个链表,就可以判断这是回文串,否则就提前退出,同时在前半部分往回遍历的过程中将前半部分的指针重置成正向。
链表存在奇偶数情况。
奇数的时候,快指针遍历到末端的时候,中点位即中间位置的点,此中位点下一个节点为后半部分比对开始的位置。
偶数的时候,快指针遍历到末端的时候,中点位置此时为下中位点,此中位点就是后半部分比对开始的位置。

