题解 | #删除链表中重复的结点#

删除链表中重复的结点

http://www.nowcoder.com/practice/fc533c45b73a41b0b44ccba763f866ef

package main
import . "nc_tools"
/*
 * type ListNode struct{
 *   Val int
 *   Next *ListNode
 * }
 */
func deleteDuplication(head *ListNode ) *ListNode {
    if head == nil || head.Next == nil {
        return head
    }
    //The first element is the repeating element
    sentry := new(ListNode)
    sentry.Next = head
    prev, cur := sentry, head
    for cur != nil {
        if cur.Next != nil && cur.Val == cur.Next.Val {
            for cur.Next != nil && cur.Val == cur.Next.Val {
                cur = cur.Next
            }
            prev.Next = cur.Next
            cur = cur.Next
            continue
        }
        cur = cur.Next
        prev = prev.Next
    }
    return sentry.Next
}
全部评论

相关推荐

代码飞升:别用口语,后端就写后端,前端就写前端,最后别光后悔
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务