package q19 type ListNode struct { Val int Next *ListNode } func removeNthFromEnd(head *ListNode, n int) *ListNode { stub := &ListNode{Next: head} probe := stub for range n { probe = probe.Next } prev := stub for probe.Next != nil { probe = probe.Next prev = prev.Next } prev.Next = prev.Next.Next return stub.Next } var _ = removeNthFromEnd