【LeetCode笔记】19. 删除链表的倒数第 N 个结点

132 阅读1分钟

题目:

19. 删除链表的倒数第 N 个结点(中等)

给你一个链表,删除链表的倒数第 n **个结点,并且返回链表的头结点。

image.png

代码:

image.png

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即为要删除的结点。