/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : val(x), next(nullptr) {} * }; */ class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 the head * @return bool布尔型 */ // 反转链表 // 这样会影响到原来的head??? // ListNode* reverseListNode(ListNode* head) // { // ListNode* next = nullptr; // ListNode* cur = head; // while(cur) // { // ListNode* cur_next = cur->next; // cur->next = next; // next = cur; // cur = cur_next; // } // return next; // } bool isPail(ListNode* head) { // write code here // 方法一:利用数组判断; vector<int> ans; while(head) { ans.emplace_back(head->val); head = head->next; } vector<int> temp = ans; reverse(temp.begin(),temp.end()); for(int i=0 ;i<ans.size(); ++i) { if(ans[i]!=temp[i]) return false; } return true; // 方法二:反转链表,然后对两个链表进行判断 // 这样会影响到原来的head??? // ListNode* ans = reverseListNode(head); // // 比较判断 // while(head) // { // if(head->val != ans->val) // return false; // head = head->next; // ans = ans->next; // } // return true; } };