哈喽,大家好呀,又来更新了。
这道题纯属一看就会,一做就废
public ListNode removeElements(ListNode head, int val) {
/*
***注1:这种写法不对。头结点head可能已经被删除了,不能直接返回头结点
ListNode cur = head;
ListNode pre = new ListNode(0,head);
return head;
*/
ListNode cur = head;
ListNode dummyNode = new ListNode(0,head);
ListNode pre = dummyNode;
while (cur != null){ //**注2:循环条件不是cur.next != null,这样无法处理最后一个节点
if(cur.val == val){ //**注3:考虑当前值等于目标值和不等于目标值的情况!!
pre.next = cur.next;
}else {
pre = pre.next;
}
cur = cur.next;
}
return dummyNode.next;
}