diff --git a/Medium/remove-nth-node-from-end-of-list/solution.go b/Medium/remove-nth-node-from-end-of-list/solution.go new file mode 100644 index 0000000..884a4f0 --- /dev/null +++ b/Medium/remove-nth-node-from-end-of-list/solution.go @@ -0,0 +1,20 @@ +/** + * Definition for singly-linked list. + * type ListNode struct { + * Val int + * Next *ListNode + * } + */ +func removeNthFromEnd(head *ListNode, n int) *ListNode { + cap := &ListNode{0, head} + lcap, rcap := cap, cap + for i := 0; i < n + 1; i++ { + rcap = rcap.Next + } + for rcap != nil { + rcap = rcap.Next + lcap = lcap.Next + } + lcap.Next = lcap.Next.Next + return cap.Next +}