判断一个链表是否为回文结构(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/难度简单)的主要内容,如果未能解决你的问题,请参考以下文章

判断回文(NC141/考察次数Top43/难度入门)

回文数字(NC56/考察次数Top65/难度简单)

回文数字(NC56/考察次数Top65/难度简单)

反转链表(NC78/考察次数Top1/难度简单)

链表排序(NC70/考察次数Top44/难度简单)

最长回文子串(NC17/考察次数Top29/难度中等)