/* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } */ public class Solution { public ListNode deleteDuplication(ListNode pHead) { if(pHead == null || pHead.next == null){ return pHead; } ListNode node = new ListNode(0); node.next = pHead; ListNode preNode = node; ListNode cur = pHead; while(cur != null){ while(cur != null && cur.next != null && cur.val == cur.next.val){ cur = cur.next; } if(preNode.next != cur){ preNode.next = cur.next; cur = cur.next; }else{ preNode = cur; cur = cur.next; } } return node.next; } }
本文介绍了一种在链表中删除重复元素的高效算法。通过引入一个虚拟头节点,算法可以处理链表中的所有重复元素,同时保持原有链表的相对顺序。此算法特别适用于需要在不使用额外数据结构的情况下,对链表进行去重操作的场景。
669

被折叠的 条评论
为什么被折叠?



