package JavaLearning;
//删除链表中等于给定值 val 的所有节点
class Solution_203 {
public ListNode removeElements(ListNode head, int val) {
while (head != null && head.val == val) {
head = head.next;
}
// 已经为null,提前退出
if (head == null) {
return head;
}
// 已确定当前head.val != val
ListNode pre = head;
ListNode cur = head.next;
while (cur != null) {
if (cur.val == val) {
pre.next = cur.next;
} else {
pre = cur;
}
cur = cur.next;
}
return head;
}
}
public class removeElements{
public static void main(String[] args) {
Solution_203 remove = new Solution_203();
ListNode listNode = new ListNode(-1);
listNode.add(1);
listNode.add(2);
listNode.add(6);
listNode.add(3);
listNode.add(6);
listNode.add(4);
listNode.print();
System.out.println();
remove.removeElements(listNode,6);
listNode.print();
}
}