您的位置:首页 > 编程语言 > Python开发

Leetcode做题日记:19. 删除链表的倒数第N个节点(PYTHON)

2018-12-28 14:48 573 查看

给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。
示例:
给定一个链表: 1->2->3->4->5, 和 n = 2.
当删除了倒数第二个节点后,链表变为 1->2->3->5.
说明:
给定的 n 保证是有效的。

res=ListNode(0)
res.next=head
l1=res
l2=res
for i in range(n):
l1=l1.next#先执行n次
while l1.next:#执行L-n次
l1=l1.next
l2=l2.next #变相执行n次
l2.next=l2.next.next #已到第n个节点,跨过去就是了
return res.next
#前面l1,l2都是遍历res,真正对同一个链表res操作是最后一步 ,击败99.97%
#注意在python中的赋值问题
#下面的是正的两次遍历法,当l2=res.next时会报错,说None没有贡献next,所以把l2=res
res=ListNode(0)
res.next=head
l1=res.next
l2=res
l3=res
L=1
while l1.next:
l1=l1.next
L=L+1

i=0
while i <L-n:
i=i+1
l2=l2.next
l2.next=l2.next.next

return l3.next
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐