删除排序链表中的重复元素
给定一个已排序的链表的头 head
, 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。
1 2
| 输入:head = [1,1,2] 输出:[1,2]
|
思路: 采用递归处理, 当前链表去重, 等于以当前节点作为根节点的子链表去重,再与当前节点去重选择最终返回的根节点
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
class Solution { public ListNode deleteDuplicates(ListNode head) { if(head == null) { return null; } ListNode next = head.next; if(next == null) { return head; } if(head.val == next.val) { next.next = deleteDuplicates(next.next); if(next.next != null && next.next.val == next.val) { return next.next; } return next; }else { head.next = deleteDuplicates(next); return head; } } }
|