原题
解题思路
题目比较简单,首先增加dummy节点作为头节点,使head节点的处理与其他的节点保持一致。遍历节点,如果下一个节点的值匹配,则删除下一个节点。
图解
代码
public class Solution203 {
public ListNode removeElements(ListNode head, int val) {
if (head == null)
return head;
ListNode dummyNode = new ListNode(0);
dummyNode.next = head;
ListNode iterator = dummyNode;
while (iterator != null && iterator.next != null){
if (iterator.next.val == val){
iterator.next = iterator.next.next;
continue;
}
iterator = iterator.next;
}
return dummyNode.next;
}
}