一、题目:83. 删除排序链表中的重复元素
二、题目解析:
解题步骤:改题突破点在于链表是排好序的
- 定义一个curr指针指向头结点
- 利用curr遍历链表直到尾部
- 如果当前结点和下一个结点相等,则删除下一个结点
- 否则,将curr指针往后遍历
图示帮助理解:
三、代码如下:
private ListNode deleteDuplicates(ListNode head) {
ListNode curr = head;
//curr指向的当前结点和下一个结点不能为空
while (curr !=null && curr.next != null){
//如果当前结点和下一个结点的val值相等
if(curr.val == curr.next.val){
//删除下一个结点,修改curr指针
curr.next = curr.next.next;
}else {
//不相等就将curr往后移动
curr = curr.next;
}
}
return head;
}
四、测试
五、结束