题目链接:https://leetcode.com/problems/remove-linked-list-elements/#/description
题目要求:删除链表中的值为指定值的所有节点
思路:该题的关键是 在head之前增加一个辅助节点,然后使用两个指针,一个previous,一个current,分别用来记录当前处理节点的前一个节点和当前处理节点。
Java代码如下:
public class Solution {
public ListNode removeElements(ListNode head, int val) {
ListNode addNode = new ListNode(0);
addNode.next = head;
ListNode previous = addNode;
ListNode current = head;
while(current != null){
if(current.val == val){
previous.next = current.next;
current = current.next;
} else {
previous = current;
current = current.next;
}
}
return addNode.next;
}
}