class Solution {
public:
ListNode* deleteNode(ListNode* head, int val) {
ListNode* tmp = head;
ListNode* last = head;
if(head->val==val) return head->next;
tmp = tmp->next;
while(tmp){
if(tmp->val==val){
last->next = tmp->next; //核心语句,解释在下面
return head;
}
tmp=tmp->next;
last=last->next;
}
return head;
}
};
删除的意思就是让当前要删除的结点的前面那个结点的next指向当前结点的next,从而越过当前这个节点达到删除的效果。