From a2cd670fd21fdfbeb7a939a01d0ceceef2dfca3c Mon Sep 17 00:00:00 2001 From: Yaseen Khan <78000116+Ykhan799@users.noreply.github.com> Date: Sat, 24 Sep 2022 23:55:47 -0700 Subject: [PATCH] Create: 19-Remove-Nth-Node-From-End-of-List.go --- go/19-Remove-Nth-Node-From-End-of-List.go | 30 +++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 go/19-Remove-Nth-Node-From-End-of-List.go diff --git a/go/19-Remove-Nth-Node-From-End-of-List.go b/go/19-Remove-Nth-Node-From-End-of-List.go new file mode 100644 index 000000000..eb065831f --- /dev/null +++ b/go/19-Remove-Nth-Node-From-End-of-List.go @@ -0,0 +1,30 @@ +/** + * Definition for singly-linked list. + * type ListNode struct { + * Val int + * Next *ListNode + * } + */ +func removeNthFromEnd(head *ListNode, n int) *ListNode { + if head == nil { + return head + } + + slow, fast := head, head + for n > 0 { + fast = fast.Next + n-- + } + + if fast == nil { + return slow.Next + } + + for fast.Next != nil { + slow = slow.Next + fast = fast.Next + } + + slow.Next = slow.Next.Next + return head +}