目录
题目
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
解决方案
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ public class Solution { public ListNode removeElements(ListNode head, int val) { if(head == null) return null; ListNode fakeHead = new ListNode(0); fakeHead.next = head; ListNode p = fakeHead;
while (p != null && p.next != null){ if(p.next.val == val){ p.next = p.next.next; continue; } p = p.next; } return fakeHead.next; } }
|
注意事项
- 使用“头指针”,去除头结点的特殊性。
- 如果当前节点的下一个节点是要删除的节点,将当前节点指向下一个节点之后的节点即可。