本文共 1277 字,大约阅读时间需要 4 分钟。
链表是排好序的,且需要删除重复的节点。重复节点指的是连续出现的相同值的节点,例如1,1,2,2,3中的第二个1、第二个2需要被删除。我们需要创建一个新的链表来存储结果,以避免在原链表上进行操作可能带来的复杂性。
步骤如下:
代码实现如下:
public class Solution { public ListNode deleteDuplication(ListNode pHead) { if (pHead == null) { return null; } ListNode newHead = new ListNode(-1); ListNode tmp = newHead; ListNode cur = pHead; while (cur != null) { if (cur.next != null && cur.val == cur.next.val) { while (cur.next != null && cur.val == cur.next.val) { cur = cur.next; } cur = cur.next; } else { tmp.next = cur; tmp = tmp.next; cur = cur.next; } tmp.next = null; } return newHead.next; }}
代码解释:
该方法能够正确处理所有情况,包括链表为空、单个节点以及最后一个节点是重复节点的情况。
转载地址:http://krhoz.baihongyu.com/