给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
示例 1:
输入: 1->1->2
输出: 1->2
示例 2:
输入: 1->1->2->3->3
输出: 1->2->3
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list
解题思路
基本思路和第82题一致
只要修改一行代码,deleteDuplicates(head.next)
改为 deleteDuplicates(head)
也就是保留了重复元素的最后一个
代码
class Solution {
public ListNode deleteDuplicates(ListNode head) {
if (head == null || head.next == null) {
return head;
} else if (head.val == head.next.val) {
while (head.next != null && head.val == head.next.val) {
head = head.next;
}
return deleteDuplicates(head);
} else {
head.next = deleteDuplicates(head.next);
return head;
}
}
}