C语言每日一题(48)回文链表

力扣 234 回文链表

题目描述

给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false

示例 1:

复制代码
输入:head = [1,2,2,1]
输出:true

示例 2:

复制代码
输入:head = [1,2]
输出:false

提示:

  • 链表中节点数目在范围[1, 105]
  • 0 <= Node.val <= 9

思路分析

之前有写过,但那时还没有学习栈,只能通过逆置链表来进行操作,现在对栈有了一些了解后,可以更加方便的进行操作了。

这里我们利用一个数组来代替栈进行操作,非常简单,将链表的所有数据入栈,然后再遍历一次链表,每次将当前节点与栈顶元素比较,如果一一相等,说明满足回文结构。

复制代码
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
bool isPalindrome(struct ListNode* head) {
    int stack[100000]={0};
    int top=0;
    struct ListNode* cur=head;
    while(cur)
    {
        stack[top++]=cur->val;
        cur=cur->next;
    } 
    cur=head;
    while(cur)
    {
        if(cur->val!=stack[top-1])
        {
            return false;
        }
        cur=cur->next;
        top--;
    }
    return true;
}
相关推荐
CodeCraft Studio2 小时前
PPT处理控件Aspose.Slides教程:在 C# 中将 PPTX 转换为 Markdown
开发语言·c#·powerpoint·markdown·ppt·aspose·ai大模型
萧鼎3 小时前
深入理解 Python Scapy 库:网络安全与协议分析的瑞士军刀
开发语言·python·web安全
阿拉丁的梦6 小时前
教程1:用vscode->ptvsd-创建和调试一个UI(python)-转载官方翻译(有修正)
开发语言·python
木宇(记得热爱生活)6 小时前
一键搭建开发环境:制作bash shell脚本
开发语言·bash
Cisyam^6 小时前
Go环境搭建实战:告别Java环境配置的复杂
java·开发语言·golang
IAR Systems7 小时前
在IAR Embedded Workbench for Arm中实现Infineon TRAVEO™ T2G安全调试
开发语言·arm开发·安全·嵌入式软件开发·iar
jayzhang_7 小时前
SPARK入门
大数据·开发语言
蹦极的考拉7 小时前
网站日志里面老是出现{pboot:if((\x22file_put_co\x22.\x22ntents\x22)(\x22temp.php\x22.....
android·开发语言·php
fured8 小时前
[调试][实现][原理]用Golang实现建议断点调试器
开发语言·后端·golang
Mercury_Lc8 小时前
【链表 - LeetCode】25. K 个一组翻转链表
数据结构·leetcode·链表