碰到这样一个问题,恳请解答:
#对于列表
a=[1,2,3]
b=a
a.append(4)
print(b)#[1,2,3,4]
#所以我的理解是要用到副本 b=a.copy,使之成为两个独立的列表 a=[1,2,3,4] b=[1,2,3]
对于链表我的疑惑就来了
比如有一个ListNode类
cur=dum=ListNode(0)
已知dum.next=a
在一个循环体里面
dum=dum.next执行很多次以后(最后不指向None),假设最后一次指向 b(随意的一个实例对象),那cur.next为什么不是b而是原来的a?
它不应该 像列表那样等号关联起来 以后指向同一个对象吗?
#恳请解答!谢谢
可以按照C/C++的思路理解,这可以理解为一个数组,那么a就是数组的首地址,并不是单纯的一个变量a,所以
b=a的时候,就相当于b也是一个地址,指向了a,所以,在更改a之后,b也会相应更改,但是,你后面说的那个cur、dum这些应该不是地址,是普通的变量,所以,并不是指向的关系,也就不会相互影响