0ms, 2.3mb - Readable code
\nfunc removeNthFromEnd(head *ListNode, n int) *ListNode {\n\tdummy := &ListNode{Next: head}\n\t// the 2nd pointer will advance only after \n\t// we processed t
```\nfunc removeNthFromEnd(head *ListNode, n int) *ListNode {\n\tdummy := &ListNode{Next: head}\n\t// the 2nd pointer will advance only after \n\t// we processed the first n nodes\n\tfirst, second := dummy, dummy\n\n\tvar count int\n\tfor first.Next != nil {\n\t\tfirst = first.Next\n\t\t\n\t\tcount++\n\t\tif count > n {\n\t\t\tsecond = second.Next\n\t\t}\n\t}\n\n\tsecond.Next = second.Next.Next\n\n\treturn dummy.Next\n}\n```
['Go']