vs报错:已执行断点指令

下述代码在运行的时候报错:已在 ******.exe 中执行断点指令(__debugbreak()语句或类似调用)。报错行为粗体那一行,请大神指教



struct ListNode {
    int val;
    ListNode* next;
    ListNode() : val(0), next(nullptr) {}
    ListNode(int x) : val(x), next(nullptr) {}
    ListNode(int x, ListNode* next) : val(x), next(next) {}
};

class Solution {
public:
    int DeleteFront(ListNode* HL)
    {

        ListNode* p = HL;
        HL = HL->next;
        int temp = p->val;
       ** delete(p);**
        return temp;
    }

};

int main() {
    ListNode l1 = ListNode(1, nullptr);
    Solution solution;
    solution.DeleteFront(&l1);
}

你就创建了一个头节点,你删啥啊
而且这个头节点并不是动态分配的空间啊,你delete当然不行了
如下修改:

class Solution {
public:
    int DeleteFront(ListNode*& HL)
    {
 
        ListNode* p = HL;
        HL = HL->next;
        int temp = p->val;
        delete(p);
        return temp;
    }
 
};
 
int main() {
    ListNode *l1 = new  ListNode(1, nullptr);
    Solution solution;
    solution.DeleteFront(l1);