力扣237出现问题,最后一个节点设为NULL了为什么还能输出呢

问题遇到的现象和发生背景

最后一个节点设为NULL了为什么还能输出呢

问题相关代码,请勿粘贴截图
void deleteNode(struct ListNode* node) {
    struct ListNode* p = node;
    while (p->next!=NULL)
    {
        p->val = p->next->val;
        p = p->next;
    }
    p=NULL;
}

运行结果及报错内容

img

我的解答思路和尝试过的方法
我想要达到的结果

p=NULL并不能删除最后一个元素,只有把倒数第二个元素的next值改为NULL才行。p只是一个指针,p为NULL只是说p不指向变量。

供参考:

void deleteNode(struct ListNode* node) 
{    
    node->val = node->next->val;
    if (node->next->next == NULL)
        node->next = NULL;
    else
        node->next = node->next->next;
}