19. Remove Nth Node From End of List
https://leetcode.com/problems/remove-nth-node-from-end-of-list/
js
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} head
* @param {number} n
* @return {ListNode}
*/
var removeNthFromEnd = function(head, n) {
var temp = new ListNode()
temp.next = head
var slow = temp
var fast = temp
for (let i = 0; i < n; i++) {
fast = fast.next
}
while (fast.next) {
slow = slow.next
fast = fast.next
}
slow.next = slow.next.next
return temp.next
}
py
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution(object):
def removeNthFromEnd(self, head, n):
"""
:type head: ListNode
:type n: int
:rtype: ListNode
"""
temp, temp.next = ListNode(None), head
slow = fast = temp
for i in range(n):
fast = fast.next
while fast.next:
slow, fast = slow.next, fast.next
slow.next = slow.next.next
return temp.next
go
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func removeNthFromEnd(head *ListNode, n int) *ListNode {
temp := &ListNode{
Next: head,
}
fast := temp
slow := temp
for i := 0; i < n; i++ {
fast = fast.Next
}
for fast.Next != nil {
fast = fast.Next
slow = slow.Next
}
slow.Next = slow.Next.Next
return temp.Next
}