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