0
点赞
收藏
分享

微信扫一扫

链表的回文结构


返回难题列表

  • 讨论
  • 排行
  • 我的提交


链表的回文结构


  • 参与人数:797时间限制:3秒空间限制:32768K
  • 本题知识点:  栈  链表


题目描述



对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。

A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。



测试样例:



1->2->2->1



返回:true


/*struct ListNode {
     int val;
     struct ListNode *next;
     ListNode(int x) : val(x), next(NULL) {}
 };*/
 class PalindromeList {
 public:
     bool chkPalindrome(ListNode* A) {
         // write code here
         //可以理解为复制链表首地址,之后 两次要用到  
         ListNode*cul=A;
         
           stack<int>a;
           while(A)
             {
                a.push(A->val);
                A=A->next;
             }
             while(cul)
             {
               if(a.top()!=cul->val)
               {
                    return false;                  
               }
                 a.pop();
                 cul=cul->next;
             }
           return true;
     }
     };

举报

相关推荐

0 条评论