YcMe822 2024-11-15 10:58 采纳率: 100%
浏览 5
已结题

python链表的创建

class ListNode:
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next

if __name__ == "__main__":
    ans = ListNode()
    p = ans
    for i in range(7):
        p.next = ListNode(i, None)
        p = p.next

想请教下,这里的ans链表的创建为啥要重新命名一个变量名p,然后进行p.next=和p=p.next的操作呢?不能更加深入地去理解,虽然可以简单的想象成先定义尾部,再把尾部定义为头部。求指教下!

  • 写回答

1条回答 默认 最新

  • 日晨难再 优质创作者: 嵌入式与硬件开发技术领域 2024-11-15 11:09
    关注

    假设你不使用p作为中间变量,而只使用ans,就失去了链表的头部。
    你理解中的“再把尾部定义为头部”是错误的,这个链表的创建形式是,ans始终指向链表头部,而p始终指向链表尾部,每当创建一个新的链表插入尾部时,就将p指向新的尾部。

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

报告相同问题?

问题事件

  • 系统已结题 12月6日
  • 已采纳回答 11月28日
  • 创建了问题 11月15日