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 {
return nil
}
var pre, cur *ListNode
flag := false
var val int
h1 := &ListNode{Next: head}
pre = h1
cur = pre.Next
for cur != nil {
val = cur.Val
for cur.Next != nil && cur.Next.Val == val {
cur = cur.Next
flag = true
}
if flag { // 多节点,不移动pre节点
pre.Next = cur.Next
flag = false
} else {
pre = pre.Next //遇到单一节点,移动节点
}
if pre == nil {
break
}
cur = pre.Next
}
return h1.Next
}