跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • Python 链表的歧义问题求助
未分類
8 11 月 2020

Python 链表的歧义问题求助

Python 链表的歧义问题求助

資深大佬 : binxin 2

比如下面这个定义 class ListNode: def init(self, val=0, next=None): self.val = val self.next = next

遇到一个特别头疼的问题是,p.next 在代码中可能有歧义(或者是我理解不到位):

  1. 它可能是指 p 这个 ListNode 的 self.next,偶尔我想修改它
  2. 它可能是指 p 这个 ListNode 的下一个节点(具体内容)

结果我连一个交换链表节点都做不好…….

大佬有話說 (14)

  • 資深大佬 : Jirajine

    有类型在,没有歧义。
    p 是 ListNode[T],p.val 是 T 。
    p.next 是 ListNode[T],p.next.val 是 T 。

  • 資深大佬 : Trim21

    不应该是具体内容啊,如果是具体内容,你怎么访问下一个节点的下一个节点呢。
    想修改下一个节点的内容应该修改 p.next.val

  • 資深大佬 : Hstar

    什么玩意?建议重修

  • 資深大佬 : renmu123

    p.next=p.next.next

  • 主 資深大佬 : binxin

    @renmu123
    嗯嗯,就比如这位老师的例子:p.next=p.next.next,
    等号右边是 p.next.next,那么它的前半部分,p.next 应该是指 p 这个节点的 next 指针,但是 p 这个节点的 next 指针是没有 next 属性的,得它指向的对象才有 next,也就是等号右边的 p.next.next 中的“p.next”,其实代表的是 p 的下一个节点整体内容,这个和左边的 p.next 不是一个含义。

    所以我是哪里理解错了呢?

  • 資深大佬 : renmu123

    @binxin #5 p1=Node(1), p2=Node(2), p3=Node(3) p1.next=p2 p2.next=p3 。 这时候链表就是:p1=>p2=>p3 。这时候 p1.next.next=p3 。如果 p1.next=p3,那么现在链表就是 p1=>p3 。p2 在链表中已经没有了。

  • 資深大佬 : maocat

    p.next = p.next.next if p.next else None

  • 資深大佬 : JeffGe

    Python 没有指针的概念,Python 所有变量都是对被右值的引用

  • 資深大佬 : JeffGe

    @JeffGe 多打了个“被”

  • 主 資深大佬 : binxin

    @maocat
    我说下我的理解:
    1. Python 没有指针的概念,Python 所有变量都是对被右值的引用意味着:p1.next=p2 中的 p1.next 其实是指 p2 这个 node,或者说 p1.next 是 p2 的引用?
    2. 那么在 p1.next = p3 的时候,其实不是把 p1 的 next 属性改成了 p3,而是把 p2 这个 node 改成了 p3,所以我哪里还是理解错了是么?

  • 資深大佬 : iConnect

    只是使用的话,建议去 github 上找现成的各种链表实现,久经考验的轮子比自己写靠谱的多。如果不能满足需求,自己写或者研究用途另说

  • 主 資深大佬 : binxin

    @iConnect
    LC 第 24 、25 题卡壳中。。。。

  • 資深大佬 : JeffGe

    https://medium.com/@daniel.tooke/variables-and-memory-addresses-in-python-6d96d672ed3d

  • 資深大佬 : geebos

    理解成引用就好了,不要把 next 理解成对象,事实上 next 确实是引用而不是指针

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具