LeetCode LCR027.回文链表 C写法

LeetCode 027.回文链表 C写法

image-20240710190222723

思路🧐:

快慢指针+反转链表,通过快慢指针找到中间结点,再将中间结点后的所有结点反转。如果是回文链表那么中间结点往后的值与头结点到中间结点的值都相等,如果有不相等的就不是回文链表。

代码✨:

 struct ListNode* MidNode(struct ListNode* head) //找中间结点
 {
    struct ListNode* fast = head;
    struct ListNode* slow = head;
    while(fast && fast->next)
    {
        fast = fast->next->next;
        slow = slow->next;
    }
    return slow;
 }
 struct ListNode* Reverse(struct ListNode* midhead) //链表反转
 {
    struct ListNode* rhead = NULL;
    struct ListNode* cur = midhead;
    while(cur)
    {
        struct ListNode* tail = cur->next;
        cur->next = rhead;
        rhead = cur;
        cur = tail;
    }
    return rhead;
 }


bool isPalindrome(struct ListNode* head){
    struct ListNode* cur = head;
    struct ListNode* mid = MidNode(head);
    struct ListNode* midhead = Reverse(mid);
    while(cur != mid) //当cur走到mid结点处就结束
    {
        if(cur->val != midhead->val) //如果不相等就返回false
        {
            return false;
        }
        else //如果相等就继续往后走
        {
            cur = cur->next;
            midhead = midhead->next;
        }
    }
    return true;
}

相关推荐

  1. leetcode-

    2024-07-12 07:36:04       61 阅读
  2. 234.

    2024-07-12 07:36:04       36 阅读
  3. 234.

    2024-07-12 07:36:04       32 阅读
  4. 234.

    2024-07-12 07:36:04       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 07:36:04       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 07:36:04       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 07:36:04       58 阅读
  4. Python语言-面向对象

    2024-07-12 07:36:04       69 阅读

热门阅读

  1. Spring依赖注入、循环依赖——三级缓存

    2024-07-12 07:36:04       30 阅读
  2. 【WPF】Enum与Converter的使用

    2024-07-12 07:36:04       25 阅读
  3. 【CH32V305FBP6】USBD 初始化分析

    2024-07-12 07:36:04       26 阅读
  4. Ansible的Playbook

    2024-07-12 07:36:04       24 阅读
  5. Ansible

    2024-07-12 07:36:04       22 阅读
  6. RabbitMQ保证消息被成功发送和消费

    2024-07-12 07:36:04       23 阅读
  7. Python实现一对多WebSocket发送给指定多个客户端

    2024-07-12 07:36:04       26 阅读
  8. React 18 + Babel 7 + Webpack 5 开发环境搭建

    2024-07-12 07:36:04       27 阅读
  9. flutter常用库的介绍(1)

    2024-07-12 07:36:04       31 阅读