From d6844d93887183e121499a289a30e5deadc5f329 Mon Sep 17 00:00:00 2001 From: Gleb Koval Date: Tue, 9 Nov 2021 16:10:49 +0000 Subject: [PATCH] remove-nth-node-from-end-of-list --- remove-nth-node-from-end-of-list/sol.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 remove-nth-node-from-end-of-list/sol.go diff --git a/remove-nth-node-from-end-of-list/sol.go b/remove-nth-node-from-end-of-list/sol.go new file mode 100644 index 0000000..105b966 --- /dev/null +++ b/remove-nth-node-from-end-of-list/sol.go @@ -0,0 +1,18 @@ +package main + +type ListNode struct { + Val int + Next *ListNode +} + +func removeNthFromEnd(head *ListNode, n int) *ListNode { + top := &ListNode{Val: 0, Next: head} + parent := top + for current, c := head, 1; current != nil; current, c = current.Next, c+1 { + if c > n { + parent = parent.Next + } + } + parent.Next = parent.Next.Next + return top.Next +}