19. 删除链表的倒数第 N 个结点

65 阅读1分钟

19. 删除链表的倒数第 N 个结点

func removeNthFromEnd(head *ListNode, n int) *ListNode {
	fast, slow := head, head
	for i := 0; i < n; i++ {
		fast = fast.Next
	}
	for fast != nil && fast.Next != nil {
		fast = fast.Next
		slow = slow.Next
	}
	if fast != nil {
		slow.Next = slow.Next.Next
	} else {
		return head.Next
	}

	return head
}