#707. 设计链表

#设计链表的实现。链表中的节点应该具有两个属性:val 和 next

class Node:def __init__(self, val):self.val = valself.next = Noneclass MyLinkedList:def __init__(self):self.head = Node(0)self.length  = 0def get(self, index: int) -> int:#获取链表第index个元素的val,index无效则返回-1if index < 0 or index >= self.length: #注意最后一个节点next没有valreturn -1curr = self.head# index steps needed # to move from sentinel node to wanted indexfor _ in range(index + 1):curr = curr.nextreturn curr.valdef addAtHead(self, val: int) -> None:#在第一个元素之前添加一个值为val的节点,新节点为head节点self.addAtIndex(0, val)def addAtTail(self, val: int) -> None:#将值为val的节点追加为最后一个元素self.addAtIndex(self.length, val)def addAtIndex(self, index: int, val: int) -> None:#在链表中的第 index 个节点之前添加值为 val  的节点。#如果 index 等于链表的长度,则该节点将附加到链表的末尾。如果 index 大于链表长度,则不会插入节点。如果index小于0,则在头部插入节点if index < 0:index = 0elif index > self.length:returnadd_node = Node(val)pre = self.headfor i in range(index):pre = pre.nextadd_node.next = pre.nextpre.next = add_nodeself.length += 1def deleteAtIndex(self, index: int) -> None:#如果索引 index 有效,则删除链表中的第 index 个节点if index < 0 or index >= self.length: # 最后一个节点是null,没有valreturnself.length -= 1# find predecessor of the node to be deletedpred = self.headfor _ in range(index):pred = pred.next# delete pred.next pred.next = pred.next.next# Your MyLinkedList object will be instantiated and called as such:
# obj = MyLinkedList()
# param_1 = obj.get(index)
# obj.addAtHead(val)
# obj.addAtTail(val)
# obj.addAtIndex(index,val)
# obj.deleteAtIndex(index)

设计链表python(leetcode707)相关推荐

  1. python求单链表的长度_709. 设计链表(Python)

    题目 难度:★★☆☆☆ 类型:链表,设计题 设计链表的实现.您可以选择使用单链表或双链表.单链表中的节点应该具有两个属性:val 和 next.val 是当前节点的值,next 是指向下一个节点的指针 ...

  2. leetcode设计链表,非常工整的实现你值得拥有

    设计链表的实现.您可以选择使用单链表或双链表.单链表中的节点应该具有两个属性:val 和 next.val 是当前节点的值,next 是指向下一个节点的指针/引用.如果要使用双向链表,则还需要一个属性 ...

  3. 【实战】ACM 选手图解 LeetCode 设计链表

    大家好呀,我是蛋蛋. 今天来设计链表,强行学明白链表的 5 种操作. 板凳摆好,直接开整. LeetCode 107:设计链表 题意 实现链表的查找.头插法.尾插法.通用插入.删除操作: get(in ...

  4. 卷进大厂系列之LeetCode刷题笔记:设计链表(中等)

    学算法,刷力扣,加油卷,进大厂! 题目描述 力扣题目链接 设计链表的实现.您可以选择使用单链表或双链表.单链表中的节点应该具有两个属性:val 和 next.val 是当前节点的值,next 是指向下 ...

  5. Anaconda :利用Anaconda Prompt (Anaconda3)建立、设计不同python版本及对应库函数环境之详细攻略

    Anaconda :利用Anaconda Prompt (Anaconda3)建立.设计不同python版本及对应库函数环境之详细攻略 目录 利用Anaconda Prompt (Anaconda3) ...

  6. Java设计链表(不带头结点的单链表)

    设计链表的实现.您可以选择使用单链表或双链表.单链表中的节点应该具有两个属性:val 和 next.val 是当前节点的值,next 是指向下一个节点的指针/引用.如果要使用双向链表,则还需要一个属性 ...

  7. 新浪微博爬虫设计(Python版)

    最近手头上有一个项目,是关于新浪微博的,其中有一环要做新浪微博的爬虫.虽然之前把<Python学习手册>和<Python核心编程>都囫囵吞栆地通读完了,不过真正到做项目的时候还 ...

  8. 设计链表(Leetcode第707题)

    此题涵盖了链表的常见操作,是练习链表操作非常好的一道题目 此题涵盖了链表的常见操作,是练习链表操作非常好的一道题目 此题涵盖了链表的常见操作,是练习链表操作非常好的一道题目 题目描述: 设计链表的实现 ...

  9. leetcode 《简单》 设计问题 Python实现

    leetcode <简单> 设计问题 Python实现''' Shuffle an Array 打乱一个没有重复元素的数组.示例: // 以数字集合 1, 2 和 3 初始化数组. int ...

  10. python创意小作品-全国青少年创意编程与智能设计大赛Python创意编程比赛

    全国青少年创意编程与智能设计大赛Python创意编程比赛 一.作品类型: 1.数字艺术 通过程序生成和展示视觉艺术,具备创意.美感和互动性. 2.互动游戏 各种竞技类.探险类.角色扮演类.球类. 棋牌 ...

最新文章

  1. 20162311 算法复杂度-3
  2. LeetCode() Remove duplicates from sorted list II
  3. 【数据结构与算法】之深入解析“填充每个节点的下一个右侧节点指针”的求解思路与算法示例
  4. 一个小清新搜索引擎试用感受 - 多吉搜索引擎(dogegoge)
  5. 【区块链Go语言实现】Part 1:区块链基本原型
  6. WinXp怎么开机进入Dos
  7. 限制只允许某个进程调用库
  8. 如何格式化用过的磁带,让他被新磁带机重复利用
  9. java 中如何比较时间先后,java中如何进行日期时间比较?4种方法介绍
  10. Python基本数据类型之字典
  11. 城市智能交通项目实施方案
  12. 面向后端的前端技术分享
  13. python mysqldb_python mysqldb 教程
  14. express实现图片上传
  15. 长春师范大学计算机科学与技术团委,计算机科学与技术系团总支学生分会纳新公告...
  16. 【C语言】题目:古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
  17. 二十七、动词不定式 万事开头难
  18. iOS 最为经典的壁纸送上!安排
  19. python数据挖掘算法的书籍_机器学习和数据挖掘推荐书单
  20. opencv-python 轮廓查找 椭圆拟合 画椭圆

热门文章

  1. Unity3d 周分享(8期 2018.12.16)
  2. 学习Android studio时的报错Binary XML file line #10: Error inflating class fragment
  3. JAVA面试技巧之自我介绍
  4. ubuntu装指定分区_Ubuntu安装过程中如何手动指定分区
  5. HTML中绑定点击事件的方式
  6. 错误 LNK1104 无法打开文件“C:\Users\Administrator\Desktop\新建文件夹\ConsoleApplication1\x64\Debug\ConsoleApplicat
  7. MySQL 聚簇索引和非聚簇索引 mysql 索引为啥用b 树
  8. 怎么用计算机算lnx,ln计算(log计算器在线)
  9. android 播放器 samba,超强本地播放器一款支持samba、FTP/Windows共享服务-简单不折腾...
  10. 英语动词过去式和过去分词