链表的回文结构@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.

持续更新~@边通书

相关文章
|
17天前
|
存储
链表入门(单链表讲)
链表入门(单链表讲)
链表入门(单链表讲)
|
5天前
|
存储
【海贼王的数据航海】链表—单链表
【海贼王的数据航海】链表—单链表
8 0
|
5天前
|
算法 C语言
【数据结构与算法 经典例题】链表的回文结构(图文详解)
【数据结构与算法 经典例题】链表的回文结构(图文详解)
|
5天前
|
存储
【数据结构】详解链表结构
【数据结构】详解链表结构
6 0
|
2月前
|
存储 编译器
单链表与双链表实现
单链表与双链表实现
27 4
|
2月前
特殊链表(循环单链表,循环双链表,静态链表)
特殊链表(循环单链表,循环双链表,静态链表)
23 3
|
25天前
|
算法
数据结构和算法学习记录——线性表之单链表(下)-头插函数、尾删函数、头删函数、查找函数、pos位置插入&删除数据、单链表销毁
数据结构和算法学习记录——线性表之单链表(下)-头插函数、尾删函数、头删函数、查找函数、pos位置插入&删除数据、单链表销毁
22 0
|
25天前
|
存储 算法
数据结构和算法学习记录——线性表之单链表(上)-初始单链表及其尾插函数(顺序表缺陷、单链表优点、链表打印)
数据结构和算法学习记录——线性表之单链表(上)-初始单链表及其尾插函数(顺序表缺陷、单链表优点、链表打印)
16 0
|
2月前
题目----力扣--回文链表
题目----力扣--回文链表
21 0
|
2月前
|
索引
【力扣刷题】回文链表、环形链表、合并两个有序链表
【力扣刷题】回文链表、环形链表、合并两个有序链表
22 0