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

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

进阶:你能尝试使用一趟扫描实现吗?

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:
        L = ListNode(0)
        L.next = head
        
        slow = fast = L
        while n > 0:
            fast = fast.next
            n -= 1
        
        while fast and fast.next:
            slow, fast = slow.next, fast.next

        slow.next = slow.next.next
        return L.next
posted @ 2021-07-15 16:15  小Aer  阅读(2)  评论(0编辑  收藏  举报  来源