题目
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
示例:
输入: 1->1->2->3->3
输出: 1->2->3
注意点
1、需要使用result标记头节点,用于标记结果链表;
2、结果链表标记完后一点后,指针必须向后移。
实现
public ListNode deleteDuplicates(ListNode head) {
//标记头节点
ListNode result = head;
//标记前一节点
ListNode pre;
while (head != null && head.next != null){
pre = head;
//如果下一节点与前一节点重复,则指针后移一位
while (head.next != null && pre.val == head.next.val){
head = head.next;
}
//结果链表的后一节点为与前一节点不同的节点
pre.next = head.next;
//指针后移
head = head.next;
}
return result;
}