当前位置: 首页 > news >正文

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;
}

http://www.lryc.cn/news/288057.html

相关文章:

  • 提高代码效率的5个Python内存优化技巧
  • 基于一款热门大屏可视化设计器使用教程
  • 梯度下降法、模拟训练、拟合二次曲线、最小二乘法、MSELoss、拟合:f(x)=ax^2+bx+c
  • Web3.0投票如何做到公平公正且不泄露个人隐私
  • 灰度图像的自动阈值分割
  • 利用Maven获取jar包
  • 将vue组件发布成npm包
  • 江科大STM32 中
  • vue+draggable+el-upload上传图片拖拽重排方法
  • 微信的新版canvas绘制的图案发生变形和偏移的问题
  • [ACM学习] 进制转换
  • redis + 拦截器 :防止数据重复提交
  • 如何进行H.265视频播放器EasyPlayer.js的中性化设置?
  • Ubuntu22.04安装4090显卡驱动
  • YOLOv8优化策略:注意力涨点系列篇 | 一种轻量级的加强通道信息和空间信息提取能力的MLCA注意力
  • 【新书推荐】2.5节 有符号整数和无符号整数
  • RT-Thread: 串口操作、增加串口、串口函数
  • 自然语言处理的新突破:如何推动语音助手和机器翻译的进步
  • vue3 + jeecgBoot 获取项目IP地址
  • Java Server-Sent Events通信
  • [蓝桥杯]真题讲解:冶炼金属(暴力+二分)
  • Fastbee开源物联网项目RoadMap
  • Linux文件管理技术实践
  • Python如何按指定列的空值删除行?
  • 【云原生】Docker的镜像创建
  • 大语言模型推理提速:TensorRT-LLM 高性能推理实践
  • 全面理解“张量”概念
  • MacOS X 安装免费的 LaTex 环境
  • 深入Amazon S3:实战指南
  • Ansible自动化运维(三)Playbook 模式详解