package main
import . "nc_tools"
/*
 * type ListNode struct{
 *   Val int
 *   Next *ListNode
 * }
 */

/**
  * 
  * @param head ListNode类 
  * @param n int整型 
  * @return ListNode类
*/
func removeNthFromEnd( head *ListNode ,  n int ) *ListNode {
    k := n
	slow := head
	fast := head
	res := slow
	for i := 0; i < k; i++ {
		if fast == nil {
			return nil
		}
		fast = fast.Next
	}
	var pre *ListNode
	for fast != nil {
		pre = slow
		slow = slow.Next
		fast = fast.Next
	}
	if pre != nil {
		pre.Next = slow.Next
	} else {
		res = slow.Next
	}
	return res
}