本文实例讲述了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* s = new stack();

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++数据结构与算法之判断一个链表是否为回文结构的方法...相关推荐

  1. python判断回文数_Python练习题---判断回文数

    设n是一个任意自然数,如果n的各位数字反向排序所得的自然数与n相等,则n被称为回文数,从键盘输入一个5位数字 ,请编写程序判断这个数字是不是回文数. 思路:先获取一个字符串,再判断该字符串是否满足是自 ...

  2. java判断回文数代码实例

    import java.util.Scanner; /** 第三章 java运算符* 课后作业 判断回文数* 5.2.1 由用户输入一个整数,判断是不是回文数(完全对称的数),如果是 打印 true, ...

  3. c语言中判断输入是否为数字_C语言编程判断回文数

    大家好,我是阿汤哥,前两天在公众号后台收到一个朋友问回文数,今天我们就来谈谈怎么用C语言编程判断一个数是不是回文数. 怎么判断回文数? 首先看定义,什么是回文数. 回文数 定义: 设n是一任意自然数. ...

  4. C语言如何判断回文数

    关于如何用C语言判断回文数? 1.什么是回文数? 答:所谓回文数就是一个数字倒着写和正着写相等. 举例:111,121,1221,12321- 2.怎么判断一个数字是不是回文数呢? 答:我们需要一个简 ...

  5. c语言里判断回文数的函数,(C语言)回文数的判断

    问题描述: 判断一个数是否为回文数: 121: 12321: 1234321: 程序分析: 1.回文数(palindromic number):是指一个数的最高位和最低位上的数相等,第二高位与次低位上 ...

  6. 第30关 判断回文数

    立即学习:[免费]C语言编程入门100题-30-第30关 判断回文数-WangTeacher的在线视频教程-CSDN程序员研修院 #include <stdio.h>void method ...

  7. python判断回文数字,Python判断回文数的三种方法实例

    需求: 从控制台输入一个五位数,如果是回文数就打印"是回文数",否则打印"不是回文数",例如:11111 12321 12221 "回文"是 ...

  8. Python中判断回文数

    判定一个5位数或者4位整数否为回文数 顺读与逆读都一样的数 例如:1,2,3,4,5,6,7,8,9,11,22,33,101,121,222 算法思路1:将该数先摸10后除10的方法一一拆除,当第一 ...

  9. python怎么设置回文数_python如何写一个函数判断回文数?

    python如何写一个函数判断回文数? python写一个函数判断回文数的方法: 设n是一任意自然数.若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数.例如,若n=1234321,则称 ...

最新文章

  1. setAdapter(adapter)空指针nullPointer 解决办法
  2. ubuntu新建python代码文件_[Vim]新建python文件自动添加python header
  3. Java实现素数的判断
  4. pythonseleniumAPI
  5. 我的世界java版导入地图_网易我的世界备份与导入地图
  6. mysql数据库1067错误
  7. 物联网核心协议—消息推送技术演进
  8. 相信自己,我能2 — ORM 工具的插入性能比较
  9. Swift5关于根据一个frame得到最大X值和最大Y值
  10. mysql 1117_1117Mysql prepare预处理语句
  11. jxls使用excel公司_使用jXLS将Excel文件解析为JavaBeans
  12. python中升级pip报错_linux系统下pip升级报错的解决方法
  13. 第二次作业 讲解及展示
  14. python计算存款复利计算器_复利计算器循环
  15. (Call Stack)
  16. 897-递增顺序查找树
  17. python中tolist()命令
  18. 中断触发后无法进入服务程序_51单片机的中断系统及应用
  19. hero登录器服务器列表为空,Hero引擎登陆器配置图文教程
  20. Python解法华为OJ机试-迷宫问题

热门文章

  1. SQL Server数据库连续集成(CI)最佳实践以及如何实现它们–测试,处理和自动化
  2. Objective-C 学习 (一):Objective-C 概述
  3. ESP32 TIMER
  4. 虚幻引擎自带的创建插件的插件
  5. odbc数据源的配置
  6. html中charset和content-language的区别
  7. Struts2 标签库讲解
  8. usb驱动自安装程序的制作
  9. 移动架构-迭代器模式
  10. 零基础快速入门web学习路线(含视频教程)