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
}