Python程序员面试算法宝典---解题总结: 第1章 链表 1.10 如何在只给定单链表中某个结点的指针的情况下删除该结点

#!/usr/bin/env python
# encoding: utf-8

'''
Python程序员面试算法宝典---解题总结: 第1章 链表 1.10 如何在只给定单链表中某个结点的指针的情况下删除该结点

题目:
假设给定链表1->2->3->4->5->6->7中指向第5个元素的指针,要求把结点5删掉,删除后链表变为
1->2->3->4->6->7。

分析:
考研的题目,分两种情况:
情况1: 如果待删除的结点不是最后一个结点
举例: 删除某个结点结点实际可以让该结点指向结点后一个结点的后一个结点,
然后令待删除结点中的元素值为待删除后一个结点的元素值,
时间复杂度O(1)

情况2:  如果待删除的节点是最后一个结点
需要从头遍历链表,遍历的时候指定,
当前结点的前一个结点为prev,
当前结点为curr
一旦curr为空了,就令prev指向的下一个节点为空


关键:


参考:
Python程序员面试算法宝典
'''

if __name__ == "__main__":
    pass

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值