LeetCode-Python-删除链表解题思路
2024-09-01 11:04:41
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。
image.png
解题思路:
- 使用双指针,快指针与慢指针的间隔为n;
- 涉及到最后要删除慢指针的节点,为了方便,先开辟一个node为pre,pre的next指向head,快慢指针均从pre开始遍历;
- 先由快指针向前走n步,再快慢指针同时向前走,直到快指针的next指向空;
- 那么此时慢指针的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
最新文章
- npm下载速度太慢
- 小甲鱼python视频弟十一讲(课后习题)
- Source Insight 中使用 AStyle 代码格式工具
- html部分---a标签的用法、放置图片与表格;
- vi 命令行模式功能键
- Ehcache(2.9.x) - API Developer Guide, Cache Exception Handlers
- spring--DI--3
- Codeforces Round #219 (Div. 2) E. Watching Fireworks is Fun
- asp.net C# 导出EXCEL数据
- WPF基础
- Ch2. Loop Structure
- 高版本Sqlserver数据库导入低版本Sqlserver
- C#基础第七天
- 释放jQuery 的$ 的使用权
- EOS智能合约授权限制和数据存储
- 全排列 ---java
- cuda和显卡驱动版本
- STL_容器共通能力
- 获取手机的唯一标示uuid
- Mongodb C#客户端数据关联数据,使用Linq语法进行关联