我知道链表的定义。。。每个单元都有数据并指向下一个。。。但是它是如何在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(
有关链接列表的更多信息,请参阅此部分。
如果您有任何疑问,请随时发表评论。