【发布时间】:2021-09-09 18:13:19
【问题描述】:
我在这里看到了很多类似的问题,但没有一个涉及我想知道的问题。举个例子吧。
我想从一个数组中创建一个链表。忽略所有的样板,让我们进入这个问题的实质。
arr = [1, 2, 3, 4, 5]
tail = head = None # this is the problematic line
for item in arr:
tail = Node(val=item, next=None)
tail = tail.next
return head
不用说,这是行不通的。 Head 总是指向 None,不管 tail 指向什么。
我尝试过的其他一些事情:
head = tail = [] # head will point to the empty list after finishing
head = tail = any_other_singleton # does not work
我知道为什么会这样。这是因为我正在重新分配 tail 以指向一个节点。但我想在“head”中保留对喜欢列表头部的引用。我怎样才能使这项工作?在其他编程语言中这是微不足道的,但在 python 中,您必须在声明时为变量赋值,这给我带来了问题。
【问题讨论】:
-
Python 没有指针。阅读以下内容:nedbatchelder.com/text/names.html
-
@juanpa.arrivillaga 是正确的,但仍然可以模拟指针行为onlinegdb.com/bTMmQX56W
-
如您所说,您将如何用其他语言轻松做到这一点?
-
这是我的错误。我应该澄清不是所有的编程语言,而不是隐含的。但我相信 C++,我们可以有两个指向同一个引用的指针并从那里开始工作,不是吗?