给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
输入: 1->1->2 输出: 1->2 输入: 1->1->2->3->3 输出: 1->2->3
我们先来看看图示:

引入一个curr指针,指向头元素
判断curr.Val==curr.Next.Val,如果是一样的话,那就把curr.Next指向curr.Next.Next

如果curr.Val!=curr.Next.Val,那我们就要推进curr了,curr = curr.Next
func deleteDuplicates(head *ListNode) *ListNode { if head == nil { return nil } curr := head for curr.Next != nil { if curr.Val == curr.Next.Val { curr.Next = curr.Next.Next } else { curr = curr.Next } } return head }
本文介绍了一种算法,用于删除已排序链表中的所有重复元素,确保每个元素仅出现一次。通过使用curr指针遍历链表,比较当前节点与下一个节点的值,如果相同则调整链表连接,否则移动curr指针。该算法实现简洁,易于理解。
439

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



