判断一个链表是否为回文结构(NC96/考察次数Top51/难度简单)
Posted 码农指南
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了判断一个链表是否为回文结构(NC96/考察次数Top51/难度简单)相关的知识,希望对你有一定的参考价值。
描述:
给定一个链表,请判断该链表是否为回文结构。
示例1
输入:
[2,1]
返回值:
false
示例2
输入:
[1,2,2,1]
返回值:
true
(题目来自牛客网)
用C++实现如下
/**
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
class Solution {
public:
/**
*
* @param head ListNode类 the head
* @return bool布尔型
*/
bool isPail(ListNode* head) {
// write code here
//从链表中抠出val,然后再进行比对即可;
if(!head)
return true;
string s = ""; //定义一个string来存放数;
while(head) //抠出所有的val放进s中去;
{
s += (head->val)+'0'; //整数与数字字符之间的转换是通过‘0’来实现的
head = head->next;
}
int i=0, j = s.size()-1;
while(i<j) //若有不相等,则返回false;
{
if(s[i++] != s[j--])
return false;
}
return true; //遍历完还未返回false,则为true;
}
};
纯手撕代码,如果觉得内容不错麻烦点个赞,后面陆续配上Top100算法题通俗易懂的讲解视频,可以花两个月时间完全掌握,进大厂不是梦,转行狗亲测!
以上是关于判断一个链表是否为回文结构(NC96/考察次数Top51/难度简单)的主要内容,如果未能解决你的问题,请参考以下文章