给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。
示例:
给定一个链表: 1->2->3->4->5, 和 n = 2.
当删除了倒数第二个节点后,链表变为 1->2->3->5.
说明:
给定的 n 保证是有效的。
解法
class Solution(object):
def removeNthFromEnd(self, head, n):
"""
:type head: ListNode
:type n: int
:rtype: ListNode
"""
probe = head
index = 0
while probe.next!= None:
index += 1
probe = probe.next
i = index - n + 1 #判断在第几个处删除
if i <= 0 or head.next is None:
head = head.next
else:
probe = head
while i > 1 and probe.next != None:
probe = probe.next
i -= 1
probe.next = probe.next.next
return head