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;
}
}