我的解题:
使用双指针,并定义一个头结点指向head
class Solution {
public:
ListNode* deleteNode(ListNode* head, int val) {
ListNode* node=new ListNode(-1);
node->next=head;
ListNode* pre=node;
ListNode* p=head;
while(head){
if(head->val==val)
pre->next=head->next;
else
pre=pre->next;
head=head->next;
}
return node->next;
}
};
这里因为节点的值互不相同,所以检测到一个等于val的节点就可以break
改后的提交记录为: