[JAVA]移除特定的链表元素

        在java中,移除链表中特定的元素

class ListNode {
      int val;
      ListNode next;
      ListNode() {}
      ListNode(int val) { this.val = val; }

public class Test {
    public ListNode removeElements(ListNode head, int val) {
        if (head == null) {//头节点为空
            return null;
        }
        ListNode cur = head.next;
        ListNode prev = head;
        while (cur != null) {//遍历找val
            if (cur.val == val) {//找到val
                prev.next = cur.next;//prev的next链接到被删除的下一位的地址
                cur = cur.next;//cur移动一位
            } else {
                prev = cur;//prev移动到cur目前的位置
                cur = cur.next;//cur移动下一位
            }
        }
        if (head.val == val) {//因为上面的循环顾及不到第一位,要记得判断第一位
            head = head.next;
            return head;
        }
        return head;
    }
}
}