[英]Basic question about Linked List in Python
让 head 指向以下链表的第一个元素 1->2->3->Null
列表的每个元素都是具有属性的 Node():val 和 next
什么时候:
curr=head
head=head.next
curr.next.val= 1000
#here head.val outputs 1000 : We changed the value of the 2nd node
但当:
curr=head
head=head.next
curr.next= Node(1000)
#here head.val outputs 2, it seems that the change
#we made in the previous line didn't
#affect the node but rather created a new 'route'.
有人能解释一下为什么在第一种情况下我们要修改节点值 w.r.t head 而在第二种情况下我们不是吗?
谢谢
考虑链表中的 3 个节点 n1、n2、n3。
head = n1
curr = head
# All n1, head and curr will be pointing to same memory.
head = head.next
# head will be reasigned to n2, but curr points to n1 itself.
第一种情况
curr.next.val = 1000 # curr.next is same as n1.next which is n2 so n2.val becomes 1000 # As head points to n2 head.val is also 1000
第二种情况
curr.next = node(1000) # it reassigns curr.next ie n1.next to new node with val = 1000 (head is unaltered) # Here as head points to n2, head.val = 2
head = head.next
只重新分配head
而不是curr
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.