題目鏈接: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;
}
}