题解 | #删除链表中重复的结点#
删除链表中重复的结点
https://www.nowcoder.com/practice/fc533c45b73a41b0b44ccba763f866ef
public class Solution {
public ListNode deleteDuplication(ListNode pHead) {
// 处理空链表或者只有一个节点的情况
// if (pHead == null || pHead.next == null) {
// return pHead;
// }
ListNode dummy = new ListNode(-1);
dummy.next = pHead;
ListNode prev = dummy;
ListNode curr = pHead;
while (curr != null && curr.next != null) {
// 如果当前节点的值和下一个节点的值相等,就循环找到第一个不相等的节点
if (curr.val == curr.next.val) {
int val = curr.val;
while (curr != null && curr.val == val) {
curr = curr.next;
}
// 删除重复节点
prev.next = curr;
} else {
// 如果当前节点的值和下一个节点的值不相等,直接更新prev和curr
prev = curr;
curr = curr.next;
}
}
return dummy.next;
}
}
#剑指offerc##java##算法##算法笔试#剑指Offer2-Java题解 文章被收录于专栏
剑指offer题解(java版)