Py小郑 2022-01-16 09:35 采纳率: 96.6%
浏览 33
已结题

Python关于链表的疑惑

碰到这样一个问题,恳请解答:

#对于列表
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?
它不应该 像列表那样等号关联起来 以后指向同一个对象吗?
#恳请解答!谢谢

  • 写回答

1条回答 默认 最新

  • LYSnowy 2022-01-16 09:59
    关注

    可以按照C/C++的思路理解,这可以理解为一个数组,那么a就是数组的首地址,并不是单纯的一个变量a,所以
    b=a的时候,就相当于b也是一个地址,指向了a,所以,在更改a之后,b也会相应更改,但是,你后面说的那个cur、dum这些应该不是地址,是普通的变量,所以,并不是指向的关系,也就不会相互影响

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月24日
  • 已采纳回答 1月16日
  • 创建了问题 1月16日

悬赏问题

  • ¥15 gwas 分析-数据质控之过滤稀有突变中出现的问题
  • ¥15 没有注册类 (异常来自 HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
  • ¥15 知识蒸馏实战博客问题
  • ¥15 用PLC设计纸袋糊底机送料系统
  • ¥15 simulink仿真中dtc控制永磁同步电机如何控制开关频率
  • ¥15 用C语言输入方程怎么
  • ¥15 网站显示不安全连接问题
  • ¥15 51单片机显示器问题
  • ¥20 关于#qt#的问题:Qt代码的移植问题
  • ¥50 求图像处理的matlab方案