【问题标题】:How to create a linked list with previous pointer?如何用前一个指针创建一个链表?
【发布时间】:2020-11-19 12:52:01
【问题描述】:

这个问题的灵感来自于一个 leetcode 问题Flatten a Multilevel Doubly Linked List

节点定义如下:

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

我的问题是如何创建一个包含上一个和下一个指针的自定义节点而不会导致循环错误。

比如我想创建一个节点是[1->2->3],下面是我的思考过程:

a=node(1,None,b)
b=node(2,a,c)
c=node(3,b,None)

但是这不会导致循环错误,因为a由b定义,而b反过来由a定义,对于c类似,b用于定义c,同时c用于定义b .如果某个东西的输入依赖于它的输出,我们如何才能找到它的价值?

我现在有点困惑,如果您对此有所了解,不胜感激。谢谢

【问题讨论】:

    标签: python-3.x linked-list


    【解决方案1】:

    您需要创建第一个节点没有链接,然后在添加相邻节点时修改链接。

    例如,我会将Node 更改为如下内容:

    class ListNode:
      def __init__(self, val, prev=None, next=None):
        self.val = val
        self.prev = prev
        if prev is not None:
          prev.next = self
        self.next = next
        if next is not None:
          next.prev = self
    

    然后像这样使用它:

    a = ListNode(1)
    b = ListNode(2, a)
    c = ListNode(3, b)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-24
      • 2023-03-22
      • 2016-04-01
      • 2014-12-13
      • 1970-01-01
      • 2016-02-23
      • 2020-05-19
      相关资源
      最近更新 更多