当前位置:   article > 正文

【判断一个链表是否为回文结构~~~链表+快慢指针+回文串】_给定一个链表,c++判断链表是不是回文结构,数据范围(0-10000)

给定一个链表,c++判断链表是不是回文结构,数据范围(0-10000)

题目描述

给定一个链表,请判断该链表是否为回文结构。
回文是指该字符串正序逆序完全一致。
数据范围: 链表节点数 0≤n≤10^5 ,链表中每个节点的值满足 ∣val∣≤10^7

实现代码&求解思路

import java.util.*;
public class Solution {
    //反转链表指针 fast-template
    public ListNode reverse(ListNode head) {
        //前序节点
        ListNode prev = null;
        while (head != null) {
            //断开后序
            ListNode next = head.next;
            //指向前序
            head.next = prev;
            prev = head;
            head = next;
        }
        return prev;
    }
    public boolean isPail (ListNode head) {
        //空链表直接为回文
        if(head == null)
            return true;
        //准备快慢双指针
        ListNode slow = head;
        ListNode fast = head;
        //双指针找中点
        while(fast != null && fast.next != null){
            slow = slow.next;
            fast = fast.next.next;
        }
        //中点处反转
        slow = reverse(slow);
        fast = head;
        while (slow != null) {
            //比较判断节点值是否相等
            if (slow.val != fast.val)
                return false;
            fast = fast.next;
            slow = slow.next;
        }
        return true;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/934699
推荐阅读
相关标签
  

闽ICP备14008679号