Python全系列 教程
3567个小节阅读:5930.6k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
链表中最简单的一种是单向链表,它包含两个域,一个信息域和一个指针域。这个链接指向列表中的下一个节点,而最后一个节点则指向一个空值
xxxxxxxxxx
def __init__(self): #初始化单链表
def get(self, index: int) -> int: #获取单链表中第index个节点的值
def addAtHead(self, val: int) -> None: #在单链表的第一个元素之前添加一个值为val的节点。
def addAtTail(self, val: int) -> None: #将值为val的节点追加到链表的最后一个元素。
def addAtIndex(self, index: int, val: int) -> None: #在链表中的第index个节点之前添加值为val的节点。如果index等于链表的长度,则该节点将附加到链表的末尾。如果index大于链表长度,则不会插入节点,如果index小于0,则在头部插入节点。
def deleteAtIndex(self, index: int) -> None: #如果索引index有效,则删除链表中的第index个节点。
需要建立node类
xxxxxxxxxx
class Node:
def __init__(self, val) -> None:
self.val = val
self.next = None
创建结构
xxxxxxxxxx
class MyLinkedList:
def __init__(self) -> None:
self.head = Node(-1) #虚拟头节点
self.size = 0
获取单链表中第index个节点
xxxxxxxxxx
def get(self, index: int) -> int:
if index < 0:
return -1
p = self.head
for i in range (index + 1):
p = p.next
if p == None:
return -1
return p.val
在链表中的第index个节点之前添加值为val的节点
xxxxxxxxxx
def addAtIndex(self, index: int, val: int) -> None:
if index > self.size:
return
if index < 0:
index = 0
p = self.head
for i in range(index):
p = p.next
#添加节点
temp_node = node(val)
temp_node.next = p.next
p.next = temp_node
self.size += 1
这个方法写完了可以直接在添加头节点和添加尾节点的地方直接进行调用
在单链表的第一个元素之前添加一个值为val的节点
xxxxxxxxxx
def addAtHead(self, val: int) -> None:
self.addAtIndex(0, val)
将值为val的节点追加到链表的最后一个元素
xxxxxxxxxx
def addAtTail(self, val: int) -> None:
self.addAtIndex(self.size, val)
如果索引index有效,则删除链表中的第index个节点
xxxxxxxxxx
def deleteAtIndex(self, index: int) -> None:
if index < 0 or index >= self.size:
return
p = self.head
for i in range (index):
p = p.next
p.next = p.next.next
self.size -= 1