| 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)))
 
- } */
 
 
  |