本文共 907 字,大约阅读时间需要 3 分钟。
Given a linked list, remove the n-th node from the end of list and return its head.
Example:
Given linked list: 1->2->3->4->5, and n = 2.After removing the second node from the end, the linked list becomes 1->2->3->5.
# Definition for singly-linked list.# class ListNode(object):# def __init__(self, x):# self.val = x# self.next = Noneclass Solution(object): def removeNthFromEnd(self, head, n): """ :type head: ListNode :type n: int :rtype: ListNode """ fast=head slow=head while n>0: fast = fast.next n -= 1 if fast is None: return head.next while fast.next: slow=slow.next fast=fast.next slow.next = slow.next.next slow=slow.next return head
这道题想在O(n)时间解决,需要用到两个指针,分别设为fast和slow,中间固定距离n。
转载地址:http://ybrbb.baihongyu.com/