删除链表中等于给定值 val 的所有节点。
示例:
输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5
public class Solution {
public class ListNode {
int val;
ListNode next;
}
public ListNode removeElements(ListNode head, int val) {
// 若头节点就是待删除元素
while (head != null && head.val == val) {
head = head.next;
}
// 链表不为空
if (head == null)
return null;
ListNode prev = head;
// 遍历链表,此时头节点不是待删除元素
while (prev.next != null) {
if (prev.next.val == val)
prev.next = prev.next.next;
else
prev = prev.next;
}
return head;
}
}