例题:移除链表元素
删除链表中等于给定值 val 的所有节点。
看上去似乎很简单,一个指针cur
向后遍历,遇到cur.next.val==val
便通过cur.next = cur.next.next
删除它。直到cur.next.val!=val
,再执行cur = cur.next
。
但是,那这样头结点怎么办呢?所以要使用一个虚拟头结点。
class Solution {
public ListNode removeElements(ListNode head, int val) {
ListNode dummyHead = new ListNode(0);
dummyHead.next = head;
ListNode cur = dummyHead;
while(cur.next!=null){
while(cur.next!=null && cur.next.val==val){
cur.next = cur