链表的回文结构@Nowcoder—— 单链表

简介: 链表的回文结构

@TOC

1. 题目

题目链接:链表的回文结构
在这里插入图片描述

2. 思路及小注意

这道题目整合了之前几道题目,返回链表中间节点,反转单链表。需要比较熟悉。
判断是否为回文链表 ——
:black_heart: 1. 找到中间节点
:black_heart: 2. 逆置后半个链表
:black_heart: 3. 遍历比较,确定终止条件

在这里插入图片描述

3. 题解

class PalindromeList {
public:
    bool chkPalindrome(ListNode* A) {
        // write code here
        // 1.寻找链表的中间节点
        struct ListNode* fast = A;
        struct ListNode* slow = A;
        while(fast != NULL && fast->next != NULL)
        {
            slow = slow->next;
            fast = fast->next->next;
        }
        // 2.反转链表
        struct ListNode* prev = NULL;
        struct ListNode* cur = slow;
        struct ListNode* next = slow->next;
        while(cur)
        {
            cur->next = prev;//反转
            //迭代
            prev = cur;
            cur = next;
            if(next)
                next = next->next;
        }
        // 3.比较是否相同
        while(A && prev)
        {
            if(A->val != prev->val)
            {
                return false;
            }
            A = A->next;
            prev = prev->next;
        }
        return true;
    }
};
:star: After all this time?
:black_heart: Always.

持续更新~@边通书

相关文章
|
1月前
【数据结构】环形、相交、回文、分割、合并、反转链表
【数据结构】环形、相交、回文、分割、合并、反转链表
28 0
|
2月前
|
存储 算法 C语言
C语言手撕实战代码_循环单链表和循环双链表
本文档详细介绍了用C语言实现循环单链表和循环双链表的相关算法。包括循环单链表的建立、逆转、左移、拆分及合并等操作;以及双链表的建立、遍历、排序和循环双链表的重组。通过具体示例和代码片段,展示了每种算法的实现思路与步骤,帮助读者深入理解并掌握这些数据结构的基本操作方法。
|
3月前
【刷题记录】链表的回文结构
【刷题记录】链表的回文结构
|
3月前
|
存储 Java 开发者
揭秘!HashMap底层结构大起底:从数组到链表,再到红黑树,Java性能优化的秘密武器!
【8月更文挑战第24天】HashMap是Java集合框架中的核心组件,以其高效的键值对存储和快速访问能力广受开发者欢迎。在JDK 1.8及以后版本中,HashMap采用了数组+链表+红黑树的混合结构,实现了高性能的同时解决了哈希冲突问题。数组作为基石确保了快速定位;链表则用于处理哈希冲突;而当链表长度达到一定阈值时,通过转换为红黑树进一步提升性能。此外,HashMap还具备动态扩容机制,当负载因子超过预设值时自动扩大容量并重新哈希,确保整体性能。通过对HashMap底层结构的深入了解,我们可以更好地利用其优势解决实际开发中的问题。
101 0
|
3月前
|
Python
【Leetcode刷题Python】234.回文链表
两种判断链表是否为回文的方法:使用栈和拆分为两个链表后反转对比,并给出了相应的Python代码实现。
22 0
|
4月前
【数据结构OJ题】链表的回文结构
牛客题目——链表的回文结构
39 0
【数据结构OJ题】链表的回文结构
|
5月前
|
存储
链表入门(单链表讲)
链表入门(单链表讲)
链表入门(单链表讲)
|
4月前
链表4(法二)------7-4 sdut-C语言实验-单链表中重复元素的删除
链表4(法二)------7-4 sdut-C语言实验-单链表中重复元素的删除
32 0
|
5月前
|
存储 算法
数据结构和算法学习记录——二叉树的存储结构&二叉树的递归遍历(顺序存储结构、链表存储结构、先序中序后序递归遍历)
数据结构和算法学习记录——二叉树的存储结构&二叉树的递归遍历(顺序存储结构、链表存储结构、先序中序后序递归遍历)
62 0
数据结构和算法学习记录——二叉树的存储结构&二叉树的递归遍历(顺序存储结构、链表存储结构、先序中序后序递归遍历)
|
5月前
|
存储
【海贼王的数据航海】链表—单链表
【海贼王的数据航海】链表—单链表
32 0