c语言数据结构判断回文数,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* 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++数据结构与算法之判断一个链表是否为回文结构的方法...相关推荐
- python判断回文数_Python练习题---判断回文数
设n是一个任意自然数,如果n的各位数字反向排序所得的自然数与n相等,则n被称为回文数,从键盘输入一个5位数字 ,请编写程序判断这个数字是不是回文数. 思路:先获取一个字符串,再判断该字符串是否满足是自 ...
- java判断回文数代码实例
import java.util.Scanner; /** 第三章 java运算符* 课后作业 判断回文数* 5.2.1 由用户输入一个整数,判断是不是回文数(完全对称的数),如果是 打印 true, ...
- c语言中判断输入是否为数字_C语言编程判断回文数
大家好,我是阿汤哥,前两天在公众号后台收到一个朋友问回文数,今天我们就来谈谈怎么用C语言编程判断一个数是不是回文数. 怎么判断回文数? 首先看定义,什么是回文数. 回文数 定义: 设n是一任意自然数. ...
- C语言如何判断回文数
关于如何用C语言判断回文数? 1.什么是回文数? 答:所谓回文数就是一个数字倒着写和正着写相等. 举例:111,121,1221,12321- 2.怎么判断一个数字是不是回文数呢? 答:我们需要一个简 ...
- c语言里判断回文数的函数,(C语言)回文数的判断
问题描述: 判断一个数是否为回文数: 121: 12321: 1234321: 程序分析: 1.回文数(palindromic number):是指一个数的最高位和最低位上的数相等,第二高位与次低位上 ...
- 第30关 判断回文数
立即学习:[免费]C语言编程入门100题-30-第30关 判断回文数-WangTeacher的在线视频教程-CSDN程序员研修院 #include <stdio.h>void method ...
- python判断回文数字,Python判断回文数的三种方法实例
需求: 从控制台输入一个五位数,如果是回文数就打印"是回文数",否则打印"不是回文数",例如:11111 12321 12221 "回文"是 ...
- Python中判断回文数
判定一个5位数或者4位整数否为回文数 顺读与逆读都一样的数 例如:1,2,3,4,5,6,7,8,9,11,22,33,101,121,222 算法思路1:将该数先摸10后除10的方法一一拆除,当第一 ...
- python怎么设置回文数_python如何写一个函数判断回文数?
python如何写一个函数判断回文数? python写一个函数判断回文数的方法: 设n是一任意自然数.若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数.例如,若n=1234321,则称 ...
最新文章
- setAdapter(adapter)空指针nullPointer 解决办法
- ubuntu新建python代码文件_[Vim]新建python文件自动添加python header
- Java实现素数的判断
- pythonseleniumAPI
- 我的世界java版导入地图_网易我的世界备份与导入地图
- mysql数据库1067错误
- 物联网核心协议—消息推送技术演进
- 相信自己,我能2 — ORM 工具的插入性能比较
- Swift5关于根据一个frame得到最大X值和最大Y值
- mysql 1117_1117Mysql prepare预处理语句
- jxls使用excel公司_使用jXLS将Excel文件解析为JavaBeans
- python中升级pip报错_linux系统下pip升级报错的解决方法
- 第二次作业 讲解及展示
- python计算存款复利计算器_复利计算器循环
- (Call Stack)
- 897-递增顺序查找树
- python中tolist()命令
- 中断触发后无法进入服务程序_51单片机的中断系统及应用
- hero登录器服务器列表为空,Hero引擎登陆器配置图文教程
- Python解法华为OJ机试-迷宫问题