import java.util.*;

/*
 * public class ListNode {
 *   int val;
 *   ListNode next = null;
 *   public ListNode(int val) {
 *     this.val = val;
 *   }
 * }
 */

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param head ListNode类
     * @return ListNode类
     */
    public ListNode deleteDuplicates (ListNode head) {
        ListNode current = head; // 当前节点
        while (current != null && current.next != null) {
            if (current.val == current.next.val) {
                current.next = current.next.next; // 删除下一个节点
            } else {
                current = current.next; // 继续遍历下一个节点
            }
        }
        return head; // 返回头节点
    }
}

本题知识点分析:

1.链表遍历

2.节点赋值

本题解题思路分析:

1.如果发现值重复,那么让当前节点指向下下个节点,就相当于删除

2.如果不重复,那么就继续遍历下一个节点

本题使用编程语言: Java