题目:在一个有序的链表中,重复的节点。
思路:定义两个指针一个pre一个current,两个相邻
一起遍历,当current和pre的val相等时,current接着向后移动,直到不相等为止
此时pre直接指向current
直到current为null为止
public ListNode deleteRepeatNodes(ListNode head){
if(head == null || head.next == null) return head;
//因为这个链表是排序的,所以相等的数据节点都是相邻的
ListNode preNode = head;
ListNode current = head.next;
while(current != null){
if(current.val == preNode.val) {
while (current.val == preNode.val && current != null) {
current = current.next;
}
preNode.next = current;
}
preNode = preNode.next;
current = current.next;
}
return head;
}