LeetCode Medium: 19. Remove Nth Node From End of List
一、题目
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.
Note:
Given n will always be valid.
给定一个链接的 list,移除从尾到头数的第 n 个结点。
二、思路
快慢指针,让快指针距离慢指针 n 的距离,然后快慢指针一块移动,然后当快指针移动到头的时候,慢指针所指的位置就是要删除的那个。
三、代码
#coding:utf-8
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
def removeNthFromEnd(head, n):
"""
:type head: ListNode
:type n: int
:rtype: ListNode
"""
dummy = ListNode(0)
dummy.next = head
start = end = dummy
for i in range(n):
start = start.next
while start.next:
start = start.next
end = end.next
end.next = end.next.next
return dummy.next
既然无论如何时间都会过去,为什么不选择做些有意义的事情呢
浙公网安备 33010602011771号