| 123456789101112131415161718192021222324252627282930313233343536 | package main/** * Definition for singly-linked list. * type ListNode struct { *     Val int *     Next *ListNode * } */func removeNthFromEnd(head *ListNode, n int) *ListNode {	fast, slow := head, head	for i := 0; i < n; i++ {		fast = fast.Next	}	if fast == nil {		return slow.Next	}	for fast.Next != nil {		fast = fast.Next		slow = slow.Next	}	slow.Next = slow.Next.Next	return head}/* func main() {	l15 := ListNode{5, nil}	l14 := ListNode{4, &l15}	l13 := ListNode{3, &l14}	l12 := ListNode{2, &l13}	l1 := &ListNode{1, &l12}	fmt.Println(list2str(removeNthFromEnd(l1, 2)))	l22 := ListNode{2, nil}	l2 := &ListNode{1, &l22}	fmt.Println(list2str(removeNthFromEnd(l2, 2)))} */
 |