回文链表

来源:互联网 发布:资本在线网络借贷 编辑:程序博客网 时间:2024/06/08 12:28

题目描述

请编写一个函数,检查链表是否为回文。

给定一个链表ListNode* pHead,请返回一个bool,代表链表是否为回文。

测试样例:
{1,2,3,2,1}
返回:true
{1,2,3,2,3}
返回:false
class Palindrome{public:    bool isPalindrome(ListNode* pHead)    {        if(pHead==NULL||pHead->next==NULL)            return false;        stack<int>s;        ListNode* p=pHead,*q=pHead;        s.push(p->val);        while(q->next!=NULL&&q->next->next!=NULL)        {            p=p->next;            s.push(p->val);            q=q->next->next;        }        if(q->next==NULL)            s.pop();        p=p->next;        while(!s.empty())        {            if(s.top()!=p->val)                return false;            p=p->next;            s.pop();        }        if(s.empty())            return true;    }};


0 0
原创粉丝点击