本文共 611 字,大约阅读时间需要 2 分钟。
原题目:
思路:
快慢指针
先用快慢指针找到中点,再将后面的进行逆序。
代码:
class Solution {public: bool isPalindrome(ListNode* head) { ListNode *fast=head,*slow=head,*prev=NULL; while(fast){ fast = fast->next; slow=slow->next; if(fast) fast = fast->next; } //逆序 while(slow){ ListNode* ovn = slow->next; slow->next = prev; prev = slow; slow = ovn; } while(head && prev){ if(head->val != prev->val) return false; head = head->next; prev = prev->next; } return true; }};
转载地址:http://jdpzi.baihongyu.com/