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 }