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 } res := &ListNode{Val: -1} res.Next = head tmp := res for tmp.Next != nil && tmp.Next.Next != nil { //剔除相同节点 if tmp.Next.Val == tmp.Next.Next.Val { sameVal := tmp.Next.Val //下个节点、下下个节点相同 for tmp.Next != nil && tmp.Next.Val == sameVal { //剔除下个节点,链接下下个节点 tmp.Next = tmp.Next.Next } } else { tmp = tmp.Next } } return res.Next }