LeetCode.19.删除链表的倒数第n个节点

题目描述:

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

输入输出实例:

思路:这道题目我们可以用双指针来做,让first和second指针之间的距离为n+1,然后我们first和second指针都往后移动,这样当first所指的为最后一个节点的后一个(即空节点)的时候,我们的second刚好在倒数第n个节点的前一个节点,然后我们second.next = second.next.next,这样达到去除第n个节点的目的。根据上述思路我们有以下代码:

python 复制代码
# 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: Optional[ListNode], n: int) -> Optional[ListNode]:
        #创建一个虚拟节点方便处理边界
        dummy = ListNode()
        dummy.next = head
        first = dummy
        second = dummy

        for _ in range(n+1):
            first = first.next
        
        while first:
            first = first.next
            second = second.next

        second.next = second.next.next

        return dummy.next
相关推荐
七颗糖很甜3 分钟前
开源雷达NEXRAD Level 3 数据完整获取与 Python 处理教程
大数据·python·算法
SuAluvfy3 分钟前
PyTorch 基础:数据操作与数据预处理
人工智能·pytorch·python
ydmy12 分钟前
Embedding层(个人理解)
python·深度学习·embedding
liuyao_xianhui14 分钟前
Linux开发工具结尾 _make
linux·运维·服务器·数据结构·哈希算法·宽度优先·1024程序员节
qq_3300379915 分钟前
mysql在高并发下如何优化索引更新_mysql锁策略与调整
jvm·数据库·python
u01091476017 分钟前
如何排查SQL存储过程内存溢出_优化大数据量临时表使用
jvm·数据库·python
2301_7735536218 分钟前
mysql如何优化mysql在多核CPU下的性能_调整线程并发数
jvm·数据库·python
源码之家22 分钟前
计算机毕业设计:Python股票智能分析预测平台 Flask框架 数据分析 可视化 机器学习 随机森林 大数据(建议收藏)✅
python·机器学习·数据分析·django·flask·课程设计
a95114164222 分钟前
PHP如何批量处理AI请求_队列系统搭建【技巧】
jvm·数据库·python