Palindrome Linked List 在Leetcode上run可以过,但是submit过不了

发布于 2022-09-06 04:14:47 字数 1037 浏览 16 评论 0

问题是: Given a singly linked list, determine if it is a palindrome.

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
bool isPalindrome(struct ListNode* head) {
    if(head==NULL||head->next==NULL) {
        return true;
    }
    static int count;
    struct ListNode *p = head;
    while(p){
        count++;
        p=p->next;
    }
    int i;
    int s[count/2];
    p=head;
    for(i=0;i<count/2;i++){
        s[i]=p->val;
        p=p->next;
    }
    i--;
    if(count%2==1) {
        p=p->next;
    }
    while(p!=NULL&&s[i]==p->val){
        i--;
        p=p->next;
    }
    if(i==-1){
        return true;
    }
    else{
        return false;
    }
}

Runtime Error Message:

Line 22: member access within null pointer of type 'struct ListNode'
Last executed input:[-129,-129]

但是用 run 的话,用 [-129, -129] 测试是可以过的.为什么呢?
我刚开始看数据结构,不是很懂,求大神指教.谢谢了.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

抚你发端 2022-09-13 04:14:47

估计是static惹的祸。它会一直保存每一次测试用例的结果,并不会重新开始计数。所以你直接对那个失败的测试用例可以过,而对多个测试用例(也就是commit)过不了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文