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

【C语言】实战-力扣题库:回文链表

题目描述

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

提示:

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

进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?

问题分析

O(1)的时间复杂度---跟n不产生关系

        因为链表只能比较当前值和next域的值,因此我们把链表中的值导入到数组当中进行比较。

我的解法:

比较前面和后面的值,两个指针同时往中间走进行比较。

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/
bool isPalindrome(struct ListNode* head) {int arr[100000];int index=0;struct ListNode* flag=head;while(flag!=NULL){arr[index]=flag->val;index++;flag=flag->next;}int i=0;int j=index-1;for(;i<j;){if(arr[i]==arr[j]){i++;j--;}else{return false;}}return true;
}

另一种解法:

快慢指针能够找到链表中间位置,也能判断链表是否有环。

一个走一步,一个走两步

后面的链表翻转,比较两段链表的值。

 

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/
bool isPalindrome(struct ListNode* head) {if(head==NULL||head->next==NULL){return true;}struct ListNode* slow = head;struct ListNode* fast = head;while(fast != NULL && fast->next != NULL) {slow = slow->next;fast = fast->next->next;}//后半段翻转struct ListNode* h=NULL;struct ListNode* f=slow;while(f!=NULL){struct ListNode* w=f->next;f->next=h;h=f;f=w;}//比较两个链表while(h!=NULL){if(head->val!=h->val){return false;}head=head->next;h=h->next;}return true;}

 

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

相关文章:

  • Centos安装Minio
  • 二叉树的基本概念和底层实现
  • GIF图片格式详解(三)
  • 类和对象相关题
  • Word大珩助手:超大数字怎么读?35位数字?69位数字?
  • 阿里云k8s-master部署CNI网络插件遇到的问题
  • 【LwIP源码学习4】主线程tcpip_thread
  • 求猫用宠物空气净化器推荐,有没有吸毛强、噪音小的产品
  • pycharm中python控制台出现CommandNotFoundError: No command ‘conda run‘.
  • 架构师备考-架构基本概念
  • 信奥赛C++知识点
  • 高并发内存池扩展 -- 处理大内存,优化释放时需要传入空间大小,加入定长内存池,存放映射关系的容器的锁机制,优化性能(基数树,优势,优化前后对比)
  • Composite(组合)
  • 有Bootloader,为什么还要BROM?
  • 【MATLAB代码】CV和CA模型组成的IMM(滤波方式为UKF),可复制粘贴源代码
  • 【网络】传输层协议TCP(下)
  • 服务器数据恢复—EVA存储故障导致上层应用不可用的数据恢复案例
  • 支持向量机相关证明 解的稀疏性
  • 静态ip和动态ip适合什么场景
  • Istio Gateway发布服务
  • 前端vue3若依框架pnpm run dev启动报错
  • python线条爱心
  • GPU的内存是什么?
  • Linux - 弯路系列1:xshell能够连接上linux,但xftp连不上(子账号可以连接,但不能上传数据)
  • 数组逆序重存放
  • 归并排序:高效算法的深度解析
  • 微服务中常用分布式锁原理及执行流程
  • 声学气膜馆助力企业年会与研学活动完美呈现—轻空间
  • Halcon3D image_points_to_world_plane详解
  • A Consistent Dual-MRC Framework for Emotion-cause Pair Extraction——论文阅读笔记