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

 
image.png

解题思路:

  1. 使用双指针,快指针与慢指针的间隔为n;
  2. 涉及到最后要删除慢指针的节点,为了方便,先开辟一个node为pre,pre的next指向head,快慢指针均从pre开始遍历;
  3. 先由快指针向前走n步,再快慢指针同时向前走,直到快指针的next指向空;
  4. 那么此时慢指针的next即为要删除的节点,此时令slow.next=slow.next.next即可。

Python3代码:

# 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:
pre = ListNode(0)
pre.next = head
slow, fast = pre, pre
while n>0:
n-=1
fast = fast.next while fast.next:
slow = slow.next
fast = fast.next slow.next = slow.next.next
return pre.next
 
 

最新文章

  1. npm下载速度太慢
  2. 小甲鱼python视频弟十一讲(课后习题)
  3. Source Insight 中使用 AStyle 代码格式工具
  4. html部分---a标签的用法、放置图片与表格;
  5. vi 命令行模式功能键
  6. Ehcache(2.9.x) - API Developer Guide, Cache Exception Handlers
  7. spring--DI--3
  8. Codeforces Round #219 (Div. 2) E. Watching Fireworks is Fun
  9. asp.net C# 导出EXCEL数据
  10. WPF基础
  11. Ch2. Loop Structure
  12. 高版本Sqlserver数据库导入低版本Sqlserver
  13. C#基础第七天
  14. 释放jQuery 的$ 的使用权
  15. EOS智能合约授权限制和数据存储
  16. 全排列 ---java
  17. cuda和显卡驱动版本
  18. STL_容器共通能力
  19. 获取手机的唯一标示uuid
  20. Mongodb C#客户端数据关联数据,使用Linq语法进行关联

热门文章

  1. centos8平台安装redis6.0.1
  2. hystrix线程池隔离的原理与验证
  3. Pyqy5 让窗口居中
  4. 腾讯云大学 x CODING | 知识分享月直播预告
  5. Jupyter Notebook使用教程
  6. 01 . Go之Gin+Vue开发一个线上外卖应用
  7. c100k
  8. 基于uni-app的微信小程序之分包
  9. pytorch训练GAN时的detach()
  10. PHP直播平台源码搭建教程