基本概念:如何在python中定义链表



我知道链表的定义。。。每个单元都有数据并指向下一个。。。但是它是如何在python中实现的呢?我真的很困惑。。。

例如,与python中的list进行比较,如果我想创建一个列表:

l1 = [1, 2, 3]

如果我想把元素添加到这个列表中,只需使用append()insert(),非常容易

然而,许多材料说,如果你想制作一个类似的链表,就需要创建一个类

class ListNode:
def __init__(self, data):
self.data = data
self.next = None
return
def has_value(self, value):
if self.data == value:
return True
else:
return False
node1 = ListNode(2)
node2 = ListNode(1.2)
node3 = ListNode('a')

我想知道是否有什么方法可以让它变得更容易,比如:

(1.2) = (2).next
('a') = (1.2).next

此外,我发现了一些类似.val .next .head的方法,什么时候可以使用?

您混淆了Python列表和链表。它们不一样。您首先提到的是一个Python列表。你提到的一个类是链表。


列表

  • Python列表只是动态数组
  • 数组的元素存储在相邻的位置
  • 列表是动态数组,这意味着它们的大小不是固定的,而是变量,可以根据需要进行扩展或收缩
  • 时间复杂性:插入:O(n(,删除:O(n(,访问元素:O(1(

链接列表:

  • 而链表是一种完全不同的数据结构,其中元素不是存储在连续的位置,而是链接到彼此
  • 这里,每个元素都有一个到列表中下一个元素的链接。对于列表的最后一个元素,它指向NULL
  • 时间复杂性:插入:O(1(,删除:O(2(,访问元素:O(n(

有关链接列表的更多信息,请参阅此部分。

如果您有任何疑问,请随时发表评论。

最新更新