9_83. 删除排序链表中的重复元素


题目描述:

解题思路:

给定的链表是排好序的,因此重复元素都是连续的,因此只需要对链表进行一次遍历,就可以完成删除重复元素的操作。

定义指针cur指向head,然后依次比较cur和cur.next的元素值,如果是重复的,直接让cur.next=cur.next.next

在最终的细节问题上,如果cur.next==null的话,表示该链表已经遍历完成,返回head即可。

代码
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode deleteDuplicates(ListNode head) {
        ListNode cur = head;
        if (head == null){
            return null;
        }
        while (cur.next != null){
            if (cur.val == cur.next.val){
                cur.next = cur.next.next;
            }else {
                cur = cur.next;
            }
        }
        return head;
            
    }
}