Remove all elements from a linked list of integers that have value val.
Example
Given: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6
, val = 6
Return: 1 --> 2 --> 3 --> 4 --> 5
算法
給定一值val,在單鏈表中刪除值爲val的結點。spa
在鏈表頭添加一個結點,對鏈表進遍歷和刪除操做。.net
鏈表結點類code
public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } }
算法實現類element
public class Solution { public ListNode removeElements(ListNode head, int val) { ListNode root = new ListNode(1); root.next = head; // 調於記錄要處理的元素的前驅結點 ListNode prev = root; // prev.next表示要處理的結點 while (prev.next != null) { // 要處理的結點是要刪除的結點 if (prev.next.val == val) { // 對結點進行刪除操做 prev.next = prev.next.next; } // 當前處理的節點不須要刪除,prev移動到下一個結點 else { prev = prev.next; } } // 返回新的根結點 return root.next; } }