Leetcode19题一直出现member access within null pointer of type 'ListNode',怎么解决啊

img


一直出现member access within null pointer of type 'ListNode',一直不知道是什么问题,网上也没找到0.0

img

m->next可能为空指针,需要先判断是否为空,然后再执行下面的语句。修改如下:

class Solution
{
public:
    ListNode* removeNthFromEnd(ListNode* head,int n)
    {
        ListNode* p = new ListNode(0,head);
        ListNode* k = p;
        ListNode* m=p;

        int j=1,o=1;
        while(k!=NULL)
        {
            k = k->next;
            j++;
        }
        while(o<j-n+1 && m!=NULL)
        {
            m = m->next;
            o++;
        }
        if(m==NULL) return head;
        ListNode* delm = m->next;
        if(m->next)
        {
            m->next = delm->next;
            delete delm;
        }
        return head;
    }    
};

你这应该是想删除链表中倒数第n个节点,我之前写过一个代码,只是没有封装成类,可以参考一下:

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632