全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

C++数据结构与算法之判断一个链表是否为回文结构的方法

本文实例讲述了C++判断一个链表是否为回文结构的方法。分享给大家供大家参考,具体如下:

题目:

给定一个链表头节点head,请判断是否为回文结构

例如:

1->2->1 true
1->2->2->1 true
1->2->3->4->2->1 false

解题思路及代码

1、找到链表中间节点,然后将链表中间节点的右边所有节点放入一个栈中。

2、然后从链表首节点和栈顶元素一一对比,不相等则return false。

算法C++代码:

链表节点结构定义

typedef struct Node
{
  int data;
  struct Node* next;
}node, *pLinkedList;
bool isHuiWen(pLinkedList head)
{
  if (head == NULL || head->next == NULL)
    return true;
  pLinkedList right = head->next;//保存中间节点的下一个节点(若为偶数则为偏右的中间节点)
  pLinkedList cur = head;      //快指针
  while (cur->next != NULL && cur->next->next != NULL)
  {
    right = right->next;
    cur = cur->next->next;
  }
  //当链表总结点个数为奇数情况时:
  if (cur->next != NULL && cur->next->next == NULL)
    right = right->next;
  //将链表右边的节点放入一个栈中
  stack<pLinkedList>* s = new stack<pLinkedList>();
  while (right != NULL)
  {
    s->push(right);
    right = right->next;
  }
  //比较链表左右两边节点是否相等
  while (!s->empty())
  {
    if (head->next->data != s->top()->data)
      return false;
    s->pop();
    head = head->next;
  }
  return true;
}

希望本文所述对大家C++程序设计有所帮助。


# C++  # 数据结构  # 算法  # 判断  # 链表  # 回文结构  # C++数据结构与算法之哈夫曼树的实现方法  # C++数据结构与算法之反转链表的方法详解  # C++数据结构与算法之双缓存队列实现方法详解  # C++ 数据结构之kmp算法中的求Next()函数的算法  # C++ 数据结构之水洼的数量算法  # C++ 冒泡排序数据结构、算法及改进算法  # C++数据结构与算法的基础知识和经典算法汇总  # 给大家  # 则为  # 所述  # 程序设计  # 若为  # 判断是否  # 为奇  # 不相等  # 讲述了  # color  # head  # empty  # ff  # br  # false  # gt  # true  # top  # span 


相关文章: 网站制作公司广州有几家,广州尚艺美发学校网站是多少?  如何使用Golang安装API文档生成工具_快速生成接口文档  ,想在网上投简历,哪几个网站比较好?  淘宝制作网站有哪些,淘宝网官网主页?  h5网站制作工具有哪些,h5页面制作工具有哪些?  如何通过PHP快速构建高效问答网站功能?  c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】  如何选择最佳自助建站系统?快速指南解析优劣  成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  制作旅游网站html,怎样注册旅游网站?  公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?  如何将凡科建站内容保存为本地文件?  盘锦网站制作公司,盘锦大洼有多少5G网站?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  天津个人网站制作公司,天津网约车驾驶员从业资格证官网?  创业网站制作流程,创业网站可靠吗?  如何快速搭建高效简练网站?  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  股票网站制作软件,网上股票怎么开户?  如何用搬瓦工VPS快速搭建个人网站?  建站主机无法访问?如何排查域名与服务器问题  高端智能建站公司优选:品牌定制与SEO优化一站式服务  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  南京网站制作费用,南京远驱官方网站?  如何在阿里云虚拟服务器快速搭建网站?  建站之星如何配置系统实现高效建站?  如何在IIS中配置站点IP、端口及主机头?  制作网站怎么制作,*游戏网站怎么搭建?  建站ABC备案流程中有哪些关键注意事项?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  nginx修改上传文件大小限制的方法  如何用虚拟主机快速搭建网站?详细步骤解析  公众号网站制作网页,微信公众号怎么制作?  Java解压缩zip - 解压缩多个文件或文件夹实例  唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?  如何获取上海专业网站定制建站电话?  如何用花生壳三步快速搭建专属网站?  如何高效配置IIS服务器搭建网站?  微信h5制作网站有哪些,免费微信H5页面制作工具?  武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?  如何选择建站程序?包含哪些必备功能与类型?  七夕网站制作视频,七夕大促活动怎么报名?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  较简单的网站制作软件有哪些,手机版网页制作用什么软件?  怀化网站制作公司,怀化新生儿上户网上办理流程?  高端建站如何打造兼具美学与转化的品牌官网?  php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。