牛客网 OR36 链表的回文结构

简介: C语言实现的代码思路

1.解题思路
首先遍历一遍链表求出链表的长度,然后分奇数和偶数两组,将链表的前半部分逆置后跟后半部分一一比较,如果发现val值不相同的则就返回false,反之则返回true.
2.代码实现

class PalindromeList {
public:
    bool chkPalindrome(ListNode* A) 
    { 
        if(A==NULL)
        return false;
        if(A->next==NULL)
        return true;
      int num=0;
      ListNode* cur=A;
    while(cur)
    {
     num++;
     cur=cur->next;
    }
    if(num%2==0)
    {  
       ListNode* p1=NULL;
        ListNode*p2=A;
        ListNode*p3=A->next;
     int num1=num/2;
    while(num1--)
    {
      p2->next=p1;
      p1=p2;
      p2=p3;
      p3=p3->next;
    }
    while(p1!=NULL&&p2!=NULL)
      {
         if(p1->val!=p2->val)
         {
            return false;
         }
         p1=p1->next;
         p2=p2->next;

      }
      return true;
    }
      else 
      {
          ListNode* p1=NULL;
        ListNode*p2=A;
     ListNode*p3=A->next;
     int num1=num/2;
      while(num1--)
    {
      p2->next=p1;
      p1=p2;
      p2=p3;
      p3=p3->next;
    }
    while(p1!=NULL&&p3!=NULL)
    {
       if(p1->val!=p3->val)
       return false;
       p1=p1->next;
       p3=p3->next;
    }
    return true; 

      }

    }
};

结尾:今天的分享到此结束,喜欢的朋友如果感觉有帮助可以点赞三连支持,咱们共同进步!

目录
相关文章
|
17天前
【数据结构】环形、相交、回文、分割、合并、反转链表
【数据结构】环形、相交、回文、分割、合并、反转链表
21 0
|
2月前
【刷题记录】链表的回文结构
【刷题记录】链表的回文结构
|
2月前
|
存储 Java 开发者
揭秘!HashMap底层结构大起底:从数组到链表,再到红黑树,Java性能优化的秘密武器!
【8月更文挑战第24天】HashMap是Java集合框架中的核心组件,以其高效的键值对存储和快速访问能力广受开发者欢迎。在JDK 1.8及以后版本中,HashMap采用了数组+链表+红黑树的混合结构,实现了高性能的同时解决了哈希冲突问题。数组作为基石确保了快速定位;链表则用于处理哈希冲突;而当链表长度达到一定阈值时,通过转换为红黑树进一步提升性能。此外,HashMap还具备动态扩容机制,当负载因子超过预设值时自动扩大容量并重新哈希,确保整体性能。通过对HashMap底层结构的深入了解,我们可以更好地利用其优势解决实际开发中的问题。
81 0
|
2月前
|
Python
【Leetcode刷题Python】234.回文链表
两种判断链表是否为回文的方法:使用栈和拆分为两个链表后反转对比,并给出了相应的Python代码实现。
19 0
|
3月前
【数据结构OJ题】链表的回文结构
牛客题目——链表的回文结构
34 0
【数据结构OJ题】链表的回文结构
|
4月前
|
存储 算法
数据结构和算法学习记录——二叉树的存储结构&二叉树的递归遍历(顺序存储结构、链表存储结构、先序中序后序递归遍历)
数据结构和算法学习记录——二叉树的存储结构&二叉树的递归遍历(顺序存储结构、链表存储结构、先序中序后序递归遍历)
30 0
数据结构和算法学习记录——二叉树的存储结构&二叉树的递归遍历(顺序存储结构、链表存储结构、先序中序后序递归遍历)
|
4月前
|
算法 C语言
【数据结构与算法 经典例题】链表的回文结构(图文详解)
【数据结构与算法 经典例题】链表的回文结构(图文详解)
|
4月前
|
存储
【数据结构】详解链表结构
【数据结构】详解链表结构
20 0
|
5月前
题目----力扣--回文链表
题目----力扣--回文链表
34 0
|
5月前
|
索引
【力扣刷题】回文链表、环形链表、合并两个有序链表
【力扣刷题】回文链表、环形链表、合并两个有序链表
37 0