leetcode-链表-删除链表的倒数第n个节点

28 阅读1分钟

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

输入: head = [1,2,3,4,5], n = 2
输出: [1,2,3,5]

第一种解法

/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func removeNthFromEnd(head *ListNode, n int) *ListNode {
    var l int
    for t := head; t != nil; t = t.Next {
        l++
    }

    res := &ListNode{0, head}
    p := res
    for i := 0; i < l-n; i++ {
        p = p.Next
    }
    p.Next = p.Next.Next
    return res.Next
}