首页 > 编程语言 >python 删除链表的倒数第 N 个结点 多种解法

python 删除链表的倒数第 N 个结点 多种解法

时间:2023-12-29 10:33:04浏览次数:45  
标签:current dummy python next 链表 节点 倒数第 指针

解法一:双指针法 这种解法使用两个指针,一个快指针和一个慢指针,它们之间的距离为 N。首先,让快指针先移动 N 步。然后,同时移动快指针和慢指针,直到快指针到达链表末尾。此时,慢指针指向的节点就是要删除的节点的前一个节点。最后,将慢指针的下一个节点指向下下个节点,完成删除操作。

def removeNthFromEnd(head, n):
    dummy = ListNode(0)  # 创建一个虚拟头节点
    dummy.next = head
    fast = dummy
    slow = dummy

    # 快指针先移动 n 步
    for _ in range(n):
        fast = fast.next

    # 同时移动快指针和慢指针
    while fast.next:
        fast = fast.next
        slow = slow.next

    # 删除节点
    slow.next = slow.next.next

    return dummy.next

解法二:计算链表长度法 这种解法需要先遍历链表,计算链表的长度。然后,找到要删除的节点的正向位置,再进行删除操作。

def removeNthFromEnd(head, n):
    length = 0
    dummy = ListNode(0)  # 创建一个虚拟头节点
    dummy.next = head
    current = head

    # 计算链表长度
    while current:
        length += 1
        current = current.next

    length -= n
    current = dummy

    # 找到要删除节点的正向位置
    while length > 0:
        length -= 1
        current = current.next

    # 删除节点
    current.next = current.next.next

    return dummy.next


标签:current,dummy,python,next,链表,节点,倒数第,指针
From: https://blog.51cto.com/lzning/9024316

相关文章

  • python turtle画图练习一
    1. 使用turtle库的函数绘制10层旋状放大的类正方形,提示:类正方形边长从0度方向,边长为1像素开始,每条边长度比前一条边增加2个像素,画笔逆时针旋转91度。效果如下图所示: 2. 使用turtle库的turtle.righ()函数和turtle.circle()函数绘制一个星星图形,圆弧的半径为90......
  • python基础(二)-异常处理
    异常是指程序运行时引发的错误,引发错误的原因有很多,如语法错误、逻辑错误等,若这些错误没有进行处理,将会导致程序终止运行python标准异常异常名称描述BaseException所有异常的基类SystemExit解释器请求退出KeyboardInterrupt用户中断执行(通常是输入^C)Exception......
  • python 读书报告
    蒋彬:以下是使用NumPy、SciPy、Pandas和Matplotlib库进行图像处理的一些示例代码。这些库通常与专用的图像处理库(如OpenCV或Pillow)一起使用,以实现更广泛的图像操作和处理。使用Matplotlib显示图像pythonCopycodeimportmatplotlib.pyplotaspltimportmatplotlib.image......
  • 【python爬虫课程设计】大数据分析——东方股票
    【python爬虫课程设计】大数据分析——东方股票一、选题的背景    近年来,东方股票作为中国股市的一部分,其行业地位和影响力较大。本次研究的目标是通过对东方股票的大数据分析,可以了解其在行业中的表现和趋势,从而为投资者提供决策依据。东方股票的交易数据和信息披露比较......
  • # yyds干货盘点 # 盘点一个Python自动化办公实战案例(四)
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【钟爱一生】问了一个Python自动化办公的问题,一起来看看吧。【温馨提示】遇到表达不清的,能稍微描述下,想要达成的结果吗?在excel上,或者画图也行。最好是把你想要的结果展示在excel中,另外,你展示的这个表格最好做个小的demo发上来......
  • 盘点一个Python自动化办公实战案例(四)
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【钟爱一生】问了一个Python自动化办公的问题,一起来看看吧。【温馨提示】遇到表达不清的,能稍微描述下,想要达成的结果吗?在excel上,或者画图也行。最好是把你想要的结果展示在excel中,另外,你展示的这个表格最好做个小的demo......
  • 【Python】【OpenCV】定位二维码
    相较于BarCode,QRCode有明显的特征区域,也就是左上角、右上角、左下角三个”回“字区域,得益于hierarchy中,父子关系的轮廓是连续的(下标),所以这个时候我们就可以通过cv2.findContours()返回的hierarchy来进行定位。我们直接上代码1importcv22importnumpy345......
  • python计算pi
    fromdecimalimportDecimal,getcontextfromtqdmimporttqdm#设置精度为getcontext().prec=100000#计算圆周率defcompute_pi():pi=Decimal(0)k=0withtqdm(total=1000,ncols=80,bar_format='{l_bar}{bar}|{n_fmt}/{total_fmt}[{elapsed}......
  • 【数据结构】C语言实现单链表的基本操作
    单链表基本操作的实现导言大家好,很高兴又和大家见面啦!!!在上一篇中,我们详细介绍了单链表的两种创建方式——头插法与尾插法,相信大家现在对这两种方式都已经掌握了。今天咱们将继续介绍单链表的基本操作——查找、插入与删除。在开始今天的内容之前,我们先通过尾插法创建一个单链表,如......
  • 【Python高级应用课程设计 】大数据分析——中国时尚购物的动机
    选题背景:时尚购物在中国的消费市场中占据了重要地位,并且受到越来越多消费者的追捧。中国消费者在时尚购物方面的动机是什么,了解其背后的原因和驱动力对于了解中国市场、时尚行业的发展趋势以及消费者行为具有重要意义。本选题旨在探讨中国时尚购物的动机。时尚购物在中国的兴盛......