Given the head of a sorted linked list, delete all duplicates such that each element appears only once. Return the linked list sorted as well.
Example 1:
Input: head = [1,1,2]
Output: [1,2]
Example 2:
Input: head = [1,1,2,3,3]
Output: [1,2,3]
Constraints:
The number of nodes in the list is in the range [0, 300].
-100 <= Node.val <= 100
The list is guaranteed to be sorted in ascending order.
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-list
/**
* 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) {
// if(head == null){
// return head;
// }
// ListNode currentNode = head;
// while(null != currentNode.next){
// if(currentNode.next.val == currentNode.val){
// currentNode.next = currentNode.next.next;
// }else{
// currentNode = currentNode.next;
// }
// }
// return head;
// }
/* apply the recursion technique*/
public ListNode deleteDuplicates(ListNode head) {
if(null == head || null == head.next){
return head;
}
head.next = deleteDuplicates(head.next);
return head.next.val == head.val ? head.next : head ;
}
}