判断回文链表

简介: 判断回文链表

今天为大家带来一个题目,在学习String的时候,就已经做过一个回文字符串的题目,现在再做一个链表回文的题目


思路分三步


1.找中间节点


2.翻转中间结点以后的结点


3.一个结点从前往后,一个结点从后往前,直到相遇


当结点个数为偶数结点的时候,head.next=slow时就是一个回文字符串,其他地方都是一样的


public class PalindromeList {
    public boolean chkPalindrome(ListNode A) {
        // write code here
            if(A==null){
                return false;
            }
            if(A.next==null){
                return true;
            }
            ListNode fast=A;
            ListNode slow=A;
            while(fast!=null&&fast.next!=null){
                    fast=fast.next.next;
                    slow=slow.next;
            }
            ListNode cur=slow.next;
            while(cur!=null){
                ListNode curNext=cur.next;
                cur.next=slow;
                slow=cur;
                cur=curNext;
            }
            while(A!=slow){
                if(A.val!=slow.val){
                    return false;
                }
                if(A.next==slow){
                    return true;
                }
                A=A.next;
                slow=slow.next;
            }
            return true;
    }
}

74dd19b3dac74f61b78b19e7c5ba214d.png

这个题目就讲解到这,我们下期再见!!!

相关文章
|
1月前
【刷题记录】链表的回文结构
【刷题记录】链表的回文结构
|
1月前
|
Python
【Leetcode刷题Python】234.回文链表
两种判断链表是否为回文的方法:使用栈和拆分为两个链表后反转对比,并给出了相应的Python代码实现。
15 0
|
2月前
【数据结构OJ题】链表的回文结构
牛客题目——链表的回文结构
27 0
【数据结构OJ题】链表的回文结构
|
3月前
|
算法 C语言
【数据结构与算法 经典例题】链表的回文结构(图文详解)
【数据结构与算法 经典例题】链表的回文结构(图文详解)
|
4月前
题目----力扣--回文链表
题目----力扣--回文链表
31 0
|
4月前
|
索引
【力扣刷题】回文链表、环形链表、合并两个有序链表
【力扣刷题】回文链表、环形链表、合并两个有序链表
32 0
|
4月前
|
算法
【每日一题】牛客网——链表的回文结构
【每日一题】牛客网——链表的回文结构
|
4月前
|
C语言 C++ 索引
【力扣】141. 环形链表、160. 相交链表、206.反转链表、234. 回文链表
【力扣】141. 环形链表、160. 相交链表、206.反转链表、234. 回文链表
|
4月前
|
Java Go C++
Golang每日一练(leetDay0086) 回文链表、删除链表节点
Golang每日一练(leetDay0086) 回文链表、删除链表节点
32 0
Golang每日一练(leetDay0086) 回文链表、删除链表节点
|
4月前
|
算法
链表的回文结构
链表的回文结构