美文网首页
83. Remove Duplicates from Sorte

83. Remove Duplicates from Sorte

作者: sarto | 来源:发表于2022-04-25 09:19 被阅读0次

题目

给定一个有序链表 head。删除所有重复元素,使每个元素出现一次,返回这个排序链表。

解析

前一个问题的简化版本,关键点在于,便利到相同元素时,指针不移动,不同元素是,修改当前指针的 next 指针即可。

伪代码

p = head
for cur != nil
  if cur.val != p.val
    p.next = cur
    p=p.next
p.next = nil

代码

/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func deleteDuplicates(head *ListNode) *ListNode {
    if head == nil {
        return head
    }
    p:=head
    for cur:=head.Next; cur != nil; cur=cur.Next {
        if cur.Val != p.Val {
            p.Next = cur
            p=p.Next
        }
    }
    p.Next = nil
    return head
}
image.png

相关文章

网友评论

      本文标题:83. Remove Duplicates from Sorte

      本文链接:https://www.haomeiwen.com/subject/yshfyrtx.html