1.题目
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
示例:
输入: 1->1->2输出: 1->2输入: 1->1->2->3->3输出: 1->2->3
2.思路
首先我们先确定边缘条件,当传入的ListNode为null,直接返回null;当ListNode.next为null时,直接返回head(已处理完);
然后我们来比较head的当前值与下一个节点的值;若head的当前值与下一节点的值相等,则回调该方法,入参为head的下一个节点,将返回的值赋予当前head;若不相等,则将返回的值赋予head的下一个节点。
class Solution {
public ListNode deleteDuplicates(ListNode head) {
if (head == null) {
return null;
}
if (head.next == null) {
return head;
}
if (head.val == head.next.val) {
head = deleteDuplicates(head.next);
} else {
head.next = deleteDuplicates(head.next);
}
return head;
}
}
