题解 | #删除有序链表中重复的元素-II#

删除有序链表中重复的元素-II

http://www.nowcoder.com/practice/71cef9f8b5564579bf7ed93fbe0b2024

package main
import . "nc_tools"

/*
//递归
func deleteDuplicates( head *ListNode ) *ListNode {
    if head == nil || head.Next == nil {
        return head
    }

    if head.Val == head.Next.Val {
        for head.Next != nil && head.Val == head.Next.Val {
            head = head.Next
        }
        return deleteDuplicates(head.Next)
    } else {
        head.Next = deleteDuplicates(head.Next)
        return head
    }
}
*/

//迭代
func deleteDuplicates( head *ListNode ) *ListNode {
    if head == nil || head.Next == nil {
        return head
    }

    dummy := &ListNode{Next : head}
    pre := dummy

    for pre.Next != nil && pre.Next.Next != nil {
        if pre.Next != nil && pre.Next.Val == pre.Next.Next.Val {
            x := pre.Next.Val

            for pre.Next != nil && pre.Next.Val == x {
                pre.Next = pre.Next.Next
            }
        } else {
            pre = pre.Next
        }
    }
    return dummy.Next
}

















全部评论

相关推荐

02-16 00:16
已编辑
湖北大学 Java
Java抽象带篮子:java简历怎么写可以看看我发的帖子,很详细的
点赞 评论 收藏
分享
明天不下雨了:我靠2022了都去字节了还什么读研我教你****:你好,本人985电子科大在读研一,本科西南大学(211)我在字节跳动实习过。对您的岗位很感兴趣,希望获得一次投递机会。
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务