请判断一个链表是否为回文链表。 链表长度不超过100。

区块链毕设网qklbishe.com为您提供问题的解答

请判断一个链表是否为回文链表。
链表长度不超过100。
typedef struct ListNode Node; class Solution { public:     /**      * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可      *      * 判断是否为回文链表      * @param head ListNode类 链表头      * @return bool布尔型      */     bool isPalindrome(ListNode* head) {                  if(head==NULL||head->next==NULL)         {             return true;         }         Node*slow=head;//慢指针         Node*fast=head;//快指针          //查找一个中间结点,将链表在中间结点后逆置,最后将逆置的          //的首地址赋值给fast,再将head的地址赋值给slow,          //一个从中间往后遍历,一个从头往后遍历,不相等就返回         Node*cur=head;//记录前面的地址         Node*p1=NULL;         Node*p2=NULL;         Node*p3=NULL;         while(fast&&fast->next)//记录中间结点         {             cur=slow;             slow=slow->next;             fast=fast->next->next;         }         cur->next=NULL;//将前一部分的最后一个地址的next置为空指针,防止死循环             p1=NULL;             p2=slow;             p3=slow->next;           while(p2)//逆置链表           {               p2->next=p1;//把p1的地址给p2的next使p2可以指向p1               p1=p2;//               p2=p3;                 if(p3)               p3=p3->next;            }         slow=head;         while(slow)//进行比较         {             if(slow->val!=p1->val)//不相等直接退出             {                 return false;             }             slow=slow->next;//将下一个结点的地址赋值给slow             p1=p1->next;//同上         }            return true;             // write code here     } };

19:11

以上就是关于问题请判断一个链表是否为回文链表。 链表长度不超过100。的答案

欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。

区块链NFT链游项目方科学家脚本开发培训

承接区块链项目定制开发

微信:btc9767

QQ :1330797917

TELEGRAM: BTCOK9

承接区块链项目定制开发


qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 请判断一个链表是否为回文链表。 链表长度不超过100。

发表回复