博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LintCode Python 简单级题目 174.删除链表中倒数第n个节点
阅读量:4959 次
发布时间:2019-06-12

本文共 1146 字,大约阅读时间需要 3 分钟。

题目描述:

 

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

 注意事项

链表中的节点个数大于等于n

 

样例

给出链表1->2->3->4->5->null和 n = 2.

删除倒数第二个节点之后,这个链表将变成1->2->3->5->null.

 

O(n)时间复杂度

 

 

 

题目分析:

 

创建两个指针,head指向表头、curent指向链表第n个元素;

循环后移n次,直至curent=Null,此时head指向倒数第n个元素。

O(n)时间复杂度

 

源码:

"""Definition of ListNodeclass ListNode(object):    def __init__(self, val, next=None):        self.val = val        self.next = next"""class Solution:    """    @param head: The first node of linked list.    @param n: An integer.    @return: The head of linked list.    """    def removeNthFromEnd(self, head, n):        # write your code here        if head is None: return None        if n == 0: return head        cur = head        follow = head        pre = head        for i in range(n):            follow = follow.next        # 当follow为null时,此时链表长度等于n,删除第一个元素即可        if follow is None:            return cur.next        # 将pre和fol依次后移,实际后移次数为n-1            while follow.next is not None:            follow = follow.next            cur = pre            pre = pre.next        # 删除第n个元素        pre.next = pre.next.next        return head

  

转载于:https://www.cnblogs.com/bozhou/p/6956119.html

你可能感兴趣的文章
2016-2017-2点集拓扑作业[本科生上课时]讲解视频
查看>>
appium(13)- server config
查看>>
IIS负载均衡-Application Request Route详解第六篇:使用失败请求跟踪规则来诊断ARR...
查看>>
管理信息系统 第三部分 作业
查看>>
[Leetcode Week13]Search a 2D Matrix
查看>>
查看端口占用cmd命令
查看>>
2019.01.17王苛震作业
查看>>
Halcon学习(八)文本操作
查看>>
MFC电子词典
查看>>
简单工厂(Simple Factory)
查看>>
04: 打开tornado源码剖析处理过程
查看>>
02: 安装epel 解决centos7无法使用yum安装nginx
查看>>
清除浮动
查看>>
PayPal(贝宝)支付接口、文档、IPN
查看>>
站立会议总结07
查看>>
ORACLE 10G R2_执行计划中cost cardinality bytes cpu_cost io_cost解释
查看>>
关于this和base
查看>>
本地存储
查看>>
MP3的播放与停止
查看>>
两个周末,两个湖
查看>>