首页 > 编程语言 > 详细

删除排序链表中的重复元素

时间:2021-04-10 16:08:01      阅读:21      评论:0      收藏:0      [点我收藏+]

技术分享图片

  • 链表是有序的,一次遍历即可
/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func deleteDuplicates(head *ListNode) *ListNode {
    if head==nil || head.Next==nil{
        return head
    }

    var curr = head
    for curr!=nil && curr.Next!=nil{
        if curr.Val==curr.Next.Val{
            if curr.Next.Next!=nil{//如果下一个的下一个不为空,即1->1->2
                curr.Next = curr.Next.Next//下一个元素变成下一个的下一个,变成1->2
            }else{
                curr.Next = nil//如果下一个的下一个为空,即1->1->nil,变成1->nil
            }
        }else{
            curr = curr.Next//指向下一个元素
        }
    }

    return head
}

删除排序链表中的重复元素

原文:https://www.cnblogs.com/pangqianjin/p/14640552.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!