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

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

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

package main

import . "nc_tools"

/*
 * type ListNode struct{
 *   Val int
 *   Next *ListNode
 * }
 */

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param head ListNode类
 * @return ListNode类
 */
func deleteDuplicates(head *ListNode) *ListNode {
	// write code here
	if head == nil || head.Next == nil {
		return head
	}
	vir := &ListNode{}
	vir.Next = head
	cur := vir //这代表不重复的点
	for i := 0; ; i++ {
		if cur.Next != nil && cur.Next.Next != nil {
			if cur.Next.Val == cur.Next.Next.Val {
				value := cur.Next.Val
				for j := 0;; j++ {
					if cur.Next != nil && cur.Next.Val == value {
						cur.Next = cur.Next.Next
					}else {
                        break
                    }
				}
			}else {
                cur = cur.Next
            }
		}else {
            break
        }
	}
    return vir.Next
}

全部评论
与1相比,多了一个while,去处理所有重复元素。
点赞 回复 分享
发布于 2023-10-29 23:16 上海

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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