题目:
19. 删除链表的倒数第 N 个结点(中等)
给你一个链表,删除链表的倒数第 n **个结点,并且返回链表的头结点。
代码:
func removeNthFromEnd(head *ListNode, n int) *ListNode {
var length int = 1
if head.Next == nil {
return nil
}
temp := head
for temp.Next != nil {
temp = temp.Next
length++
}
if length == n {
return head.Next
}
temp = head
for i := 1; i < (length - n ); i++ {
head = head.Next
}
head.Next = head.Next.Next
return temp
}
解析: 这题比较简单,应该算不上中等题。思路是算出链表长度减去倒数的N+1即为要删除的结点。