LeetCode 19. 删除链表的倒数第N个节点(Golang)
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? /** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */ func removeNthFromEnd ( head * ListNode , n int ) * ListNode { if n <= 0 || head == nil { return head } fast := head for i := 1 ; i <= n && fast != nil ; i ++ { fast = fast . Next } if fast == nil { return head . Next } slow := head for fast . Next != nil { slow = slow . Next fast = fast . Next } slow . Next = slow . Next . Next return head } 来源: CSDN 作者: 李柏林