移除链表元素【LC 203题】
给你一个链表的头节点 head
和一个整数 val
,请你删除链表中所有满足 Node.val == val
的节点,并返回 新的头节点 。
方法一:注意可能前几个节点的值都是val,因此要用while循环删除头结点
// 不使用虚拟头结点
public ListNode removeElements(ListNode head, int val) {
while (head!=null && head.val==val) head=head.next;
ListNode cur=head;
while (cur!=null){
// 除了处理头结点要使用while循环,处理后续节点也要使用while循环,来去除连续的val节点
while (cur.next!=null && cur.next.val==val) cur.next=cur.next.next;
cur=cur.next;
}
return head;
}
大约 20 分钟