C++ 回文链表

/**
请编写一个函数,检查链表是否为回文。
给定一个链表ListNode* pHead,
请返回一个bool,代表链表是否为回文。

**/

#include
using namespace std;

struct ListNode {
    int val;
    struct ListNode *next;
    ListNode(int x) : val(x), next(NULL) {}
};
class Palindrome {
public:
    bool isPalindrome(ListNode* pHead) {
        // write code here
        // 第一遍遍历链表,得到链表的长度
        ListNode *p1,*p2;
        p1=pHead;
        p2=pHead;
        int length=0;
        while(p1){
            length+=1;
            p1=p1->next;
        }
        int value[length];
        for(int i=0;ival;
            p2=p2->next;
        }
        for(int j=0;jnext=new_node;
        p=p->next;
    }
    Palindrome sol;
    bool result;
    result=sol.isPalindrome(pHead->next);

    cout<

 

你可能感兴趣的:(C++)