【发布时间】:2020-09-25 06:32:40
【问题描述】:
下面是一个将节点的每个数字除以10的代码。例如,节点= 2->3->3,输出将是0.2->0.3->0.3。
但是我很困惑为什么self.head.next 每次都会更新,因为它是cur 接收更改。假设a=1,b=2,我们做a(cur)=b(self.head),如果我们把a的值改为3,那不会影响b,b仍然是2。所以我不明白为什么更改cur 会影响self.head.next。谢谢!
class node(object):
def __init__(self,value,next=None):
self.value=value
self.next=next
class linkedlist(object):
def __init__(self):
self.head=None
self.next=None
def test(self,List):
self.head=node(0)
cur=self.head
while List:
s=List.value/10
cur.next=node(s)
cur=cur.next
List=List.next if List else 0
return self.head.next
假设下面是输入:
a=node(2)
a=node(2,a)
a=node(3,a)
c=linkedlist()
下面是输出:
c.test(a).value=0.3
c.test(a).next.value=0.2
c.test(a).next.next.value=0.2
【问题讨论】:
-
你能提供一个示例输入和输出吗?顺便说一句,您可以使用
List.head而不是只使用List以使代码更具可读性。截至目前,我看到您的列表仅包含以0为值的节点。
标签: python linked-list