判断链表的回文结构



#define Node ListNode

class Solution {
public:
    /**
     * 
     * @param head ListNode类 the head
     * @return bool布尔型
     */
    bool isPail(ListNode* head) {
        if(head==NULL ||head->next ==NULL) return true;
        // write code here
        ListNode*first=head,*last=head;
        while(first && first->next) first=first->next->next,last=last->next;
        stacks;
        while(last) {
            s.push(last);
            last = last->next;
        }
        last = head;
        while(s.size() && last->val == s.top()->val) last = last->next,s.pop();
        return s.empty();
        
    }
};

相关