234回文链表

题目描述:

请判断一个链表是否为回文链表。

示例 1:

输入: 1->2
输出: false

示例 2:

输入: 1->2->2->1
输出: true
思路:
刚开始的时候想错了,以为只有中间有重复出现的元素才能是回文串
如果题目是数组,不是链表那么这个问题解决起来就会比较容易
所以我采用了一种最笨的办法,先把长度求出来,然后判断首尾的元素是否相等,得出结论
这种方案比较蠢,但是无奈我只会按照数组的方法求
代码如下:
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */

int q[70000];
bool isPalindrome(struct ListNode* head){

    struct ListNode *p=head;
    int len=0;
    while(p)
    {
       len++;
        q[len]=p->val;
         p=p->next;
    }
    
    for(int i=1;i<=len/2;i++)
    {
        if(q[i]!=q[len-i+1])
           return false;
    }
    return true;

}

  结论:

这本应该是一道链表的题,可是因为对链表掌握的不深刻,所以只能采取数组的形式完车。慢慢加深练习之后再回头用链表来完成一下这道题

 
posted @ 2020-07-16 10:47  进寸欢喜  阅读(92)  评论(0编辑  收藏  举报