我考虑了3种解决方案的案例:
案例 1 : 如果数组的形式为 [1,2,3,4,5]
案例 2 : 如果数组的形式为 [1,1,1,2,3,4,5]
情况 3 : 如果数组是 [1,2,3,3,3,3,4,5]
我在Go中的解决方案。
type ListNode struct {
Val int
Next *ListNode
}
func deleteDuplicates(head *ListNode) *ListNode {
if head == nil || head.Next ==nil{
return head
}
current := head
var prev *ListNode
for current.Next != nil {
if current.Val != current.Next.Val{ // (CASE-1)
prev = current
current = current.Next
} else if current ==head && current.Val == current.Next.Val { //(CASE-2)
current = current.Next.Next
head = current
} else if current != head && current.Val == current.Next.Val { //(CASE-3)
for current.Val == current.Next.Val{
current = current.Next
}
temp := current.Next
prev = temp
current = prev.Next
}
}
return head
}
我在案例-3中遇到问题?我不知道我做错了什么。
暮色呼如
繁星coding
相关分类