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

时间:2020-09-28 14:21:13

标签: python-3.x linked-list

我知道链表的定义...每个单元都有数据并指向下一个...但是它是如何在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

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

1 个答案:

答案 0 :(得分:1)

您正在将Python列表与链接列表混淆。它们不一样。您首先提到的是一个Python列表。您提到的一个类是一个链表。


列表

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

链接列表:

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

有关链表的更多信息,请参见this

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

相关问题