文章目录

  • 回文数
  • 代码实现

回文数

代码实现

回文数是指一个像16961这样"对称"的数,即:将这个数的数字按相反的顺序重新排列后,所得到的数和原来的数一样。 了解回文数 自然就能更好地理解回文链表

核心思路:

先找到中间节点
然后从中间节点开始 ,对后半段逆置
最后前半段和后半段进行比较 (从链表的头节点和逆转后返回的节点分别开始遍历判断)
如果相等就是回文结构 如果不相等 就不是回文结构

如果是奇数 ,节点就是中间
如果有两个中间结点,则返回第二个中间结点(偶数的情况)





需要注意一个细节 : 此时节点 2的next依然保存的是原链表节点 3的地址

class PalindromeList {public:
struct ListNode* middleNode(struct ListNode* head)
{struct ListNode* cur = head;int size = 1;//得到链表元素个数while (cur->next != NULL){size++;cur = cur->next;}//第二次遍历 得到中间节点cur = head;int k = 0;size /= 2;  //5/2 =2 while (k < size){k++;cur = cur->next;}return cur;}
// 反转链表函数
struct ListNode* reverseList(struct ListNode* head)
{struct ListNode* cur = head;struct ListNode* newhead = NULL;if (head == NULL)  //空链表{return NULL;}// 不是空链表 while (cur){struct ListNode* next = cur->next; //保存下一个节点的地址//头插cur->next = newhead;newhead = cur;cur = next;}return  newhead;}
bool chkPalindrome(struct ListNode* head) //判断回文链表
{// 找中间节点struct ListNode* mid = middleNode(head);// 从中间节点开始反转链表struct ListNode* rhead = reverseList(mid);// 判断while (head && rhead){if (head->val != rhead->val){return false;}rhead = rhead->next;head = head->next;}return true;
}
};

如果你觉得这篇文章对你有帮助,不妨动动手指给点赞收藏加转发,给鄃鳕一个大大的关注
你们的每一次支持都将转化为我前进的动力!!!

Nowcoder. 链表的回文结构相关推荐

  1. 链表的回文结构@Nowcoder—— 单链表

    小题解 1. 题目 2. 思路及小注意 3. 题解 1. 题目 题目链接:链表的回文结构 2. 思路及小注意 这道题目整合了之前几道题目,返回链表中间节点,反转单链表.需要比较熟悉. 判断是否为回文链 ...

  2. 【牛客】链表的回文结构

    ​​​​​​链表的回文结构_牛客题霸_牛客网 (nowcoder.com) 题目: 对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构. 给定一个链表的 ...

  3. C语言习题——链表的回文结构

    如果是数组的话,直接找到中间下标,然后用两个指针,一个指向首元素,另一个指向最后一个元素,然后同时向中间走就能判断,但对于单链表来说,找到中间的结点是不能用下标访问的,所以采用快慢指针法,即慢指针一次 ...

  4. [数据结构]题海啊,全是水(三)链表中倒数第k个节点、链表的回文结构、链表分割

    这是一个目录 链表中倒数第k个节点 解法一 解法二 链表的回文结构 思路 代码 链表分割 思路 代码 最后 菜鸡大学生的数据结构--刷题篇3 我们的第三题小宝贝儿回归了! 菜鸡大学生明白,笔试oj题目 ...

  5. JAVA链表习题---回文结构(详细图解)

    回文结构 前言 什么是回文结构? 题目描述 思路分析 完整代码 前言 什么是回文结构? 回文结构:结构相同.方向相反的序列. 通俗讲,指一个顺着读和反过来读都一样的字符串. 特点:对称 题目描述 对于 ...

  6. 链表回文(牛客网:OR36 链表的回文结构)

    目录 前言 一,题目分析 1.1什么是回文 1.2题目分析 二,解题思路 情况一: 情况二: tips: 三,源码分享 前言 小伙伴们大家好啊!今天我们为大家带来一篇有关判断链表回文的文章.大家一旦想 ...

  7. 链表的回文结构(算法笔记)

    单链表的换头问题 如果涉及到单链表的相关算法题中涉及到换头操作,方法需要返回值 简单问题一 打印两个有序链表的公共部分 问题二 判断一个链表是否为回文结构 [题目]给定一个单链表的头节点head,请判 ...

  8. LeetCode 链表的回文结构

    链表的回文结构 题目描述 对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构. 给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构.保证 ...

  9. 【Java】 链表的回文结构

    题目 : 对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构. 给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构.保证链表长度小于等于 ...

最新文章

  1. 根据网络状态获取Ip地址
  2. javascript闭包产生的内存泄漏
  3. [html] 前端需要注意哪些SEO?
  4. gitlab访问错误Whoops, GitLab is taking too much time to respond
  5. BackBone及其实例探究
  6. 一页纸项目管理及模板下载
  7. Guass_seidel迭代法
  8. c++ 获取外网ip地址
  9. 《缠中说禅108课》44:小级别背驰引发大级别转折
  10. 安卓权限工具类(二)
  11. 历届试题 合根植物 C语言,植物营养历年真题(整理).doc
  12. ceph管理界面calamari(未成功)
  13. 介绍一下xgb_XGB羽毛球app
  14. 人生25句最美丽的名句
  15. EasyExcel为单个Cell设置样式
  16. 常用的第三方模块-Pillow
  17. ThinkPhp5.0.24 JWT报错 ‘“kid“ empty, unable to lookup correct key‘解决办法
  18. Acoustics | 声音时间检测:日常声音理解
  19. 安全的企业邮箱如何选择
  20. 万物互联大数据研究正式展开人才紧缺

热门文章

  1. Win10左下角搜索框无法搜索点击无反应的解决方法
  2. Fans没信心,回家继续修行
  3. flux 中的 buffer 的原理
  4. 电脑休眠、睡眠、待机的区别
  5. mysql inet aton ipv6_mysql 使用inet_aton和inet_ntoa处理ip地址数据
  6. 第三章 sysrepo-plugind源码分析
  7. localtimestamp
  8. unix_timestamp时间比较引发的问题
  9. 虚拟机运行安卓ISO
  10. 特网云服务器 WindowsServer2012 关闭IE增强机制