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
相关推荐
沃斯堡&蓝鸟1 分钟前
DAY30 函数专题1:函数定义与参数
python
小oo呆8 分钟前
【学习心得】Python的TypedDict(简介)
开发语言·python
C雨后彩虹8 分钟前
ConcurrentHashMap入门:高并发场景的 HashMap替代方案
java·数据结构·哈希算法·集合·hashmap
文洪涛12 分钟前
VS Code Python “第一次运行失败 / 先执行 python 再激活 Conda” 问题定位与解决
开发语言·python·conda
zd20057229 分钟前
STREAMS指南:环境及宿主相关微生物组研究中的技术报告标准
人工智能·python·算法
Data_agent33 分钟前
京东商品价格历史信息API使用指南
java·大数据·前端·数据库·python
云技纵横34 分钟前
Stream API 从入门到实践:常用操作、易错点与性能建议
开发语言·windows·python
雪域迷影34 分钟前
macOS系统上或首次使用Python的urllib模块时出现 ssl.SSLCertVerificationError 错误
python·macos·ssl
其美杰布-富贵-李40 分钟前
PyTorch Optimizer 与 Scheduler 指南
人工智能·pytorch·python·优化·训练