题解 | 删除有序链表中重复的元素-II
删除有序链表中重复的元素-II
https://www.nowcoder.com/practice/71cef9f8b5564579bf7ed93fbe0b2024
import java.util.*;
/*
* public class ListNode {
* int val;
* ListNode next = null;
* public ListNode(int val) {
* this.val = val;
* }
* }
*/
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param head ListNode类
* @return ListNode类
*/
public ListNode deleteDuplicates (ListNode head) {
// write code here
if(head==null) return null;
ListNode res=new ListNode(-1); //分配一个新的头节点
res.next=head; //头节点指向首节点
ListNode cur=res; //新建一个指向头节点的指针
while(cur.next!=null&&cur.next.next!=null){
if(cur.next.val==cur.next.next.val){
int temp=cur.next.val; //暂存值
while(cur.next!=null&&cur.next.val==temp){
cur.next=cur.next.next; //删除一个节点(这里是删除所有值等于暂存值的节点)
}
}
else{
cur=cur.next; //指针后移
}
}
return res.next; //返回首节点
}
}
查看23道真题和解析