【问题标题】:Why is the 'head' in a linked list set to none?为什么链表中的“头”设置为无?
【发布时间】:2022-01-16 21:45:16
【问题描述】:

您好,我一直在尝试自学数据结构,并从阅读有关链表的内容开始。总的来说,我还是 python 新手,但我知道类的基础知识和语法等等,所以决定为什么不尝试学习这个。无论如何,我开始创建一个链表类的这一部分,我知道链表的“头”部分将是第一个节点,但不太确定它为什么设置为“无”。抱歉,如果这是一个愚蠢的问题:/

这是它的代码...

class Node:
  def __init__(self, data): 
    self.data = data
    self.next = None

class LinkedList:
  def __init__(self):  
    self.head = None  #why is this part set to none? 

【问题讨论】:

  • 如果不设置它,则需要额外检查实例变量“head”是否存在。如果没有头节点,“None”是自然选择。
  • 因为LinkedList被初始化为空(比如调用list())。 __init__ 不允许一些初始数据。

标签: python singly-linked-list


【解决方案1】:

这只是初始化部分,当链表初始化时,你不希望它有价值。

ll = LinkedList()
node = Node(1)
ll.head = node

这将使节点成为链表的头部,您可以稍后将值添加到它

【讨论】:

    【解决方案2】:

    当你创建像ll = LinkedList()这样的LinkedList类的对象时,它默认调用类的构造函数,即init()。

    显然,当您创建对象但尚未将其分配给任何节点时,它是一个空链表,我们显示一个空链表,就像一个指针头指向 none,因为该链表是空的。

    我希望这能澄清你的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-04
      • 1970-01-01
      • 2019-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-15
      • 2019-03-24
      相关资源
      最近更新 更多