使用一个栈将链表倒序的值保存进去,然后正序遍历链表并不断与栈顶元素作比较。
/**
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
class Solution {
public:
/**
*
* @param head ListNode类 the head
* @return bool布尔型
*/
bool isPail(ListNode* head) {
stack<int> stk{};
ListNode* cur=head;
while(cur!=nullptr){
stk.push(cur->val);
cur=cur->next;
}
cur=head;
while(cur!=nullptr){
int rear=stk.top();
stk.pop();
if(cur->val!=rear) return false;
cur=cur->next;
}
return true;
}
};