python - 前向链表的问题

标签 python algorithm linked-list

我已经成功实现了向后链接列表,但我正在尝试找出如何实现向前链接列表,但我似乎不知道如何实现。问题出在我的 insert 方法中。我试图跟踪前一个节点,并将其指向新创建的节点,但我遗漏了一些东西。

class Node(object):
    def __init__(self, data=None, next_node=None):
        self.data = data
        self.next_node = next_node

    def set_next(self, new_next):
        self.next_node = new_next

    def get_data(self):
        return self.data

    def get_next(self):
        return self.next_node

class LinkedList(object):
    def __init__(self, head=None):
        self.head = head

    def insert(self, data):
        previous_node = self.head
        current_node = self.head
        new_node = Node(data)
        if previous_node is not None:
            previous_node.set_next(new_node)
            previous_node = self.head

最佳答案

尚不清楚您的 insert 方法应该做什么。如果要插入到列表的开头(在 head 之前),那么您应该设置 new_node.set_next(previous_node)self.head = new_node。如果您打算追加到列表末尾,则需要扫描列表,直到找到带有 current_node.get_next() == None 的节点并执行 current_node.set_next (新节点)

由于这看起来像家庭作业,我不想直接给你答案。我将提供一些伪代码来帮助您入门

def insert(value):
    let current = head
    until current.next_node == None:
        let current = current.next_node

    let current.next_node = Node2(value)

关于python - 前向链表的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35468594/

相关文章:

python - StandardScaler "with_std=False or True"和 "with_mean=False or True"之间的区别

algorithm - 在 RTS 中确定一组单位的方法

c - 搜索二叉树C,字典顺序,下一个排列,递归

c++ - 如何识别股市中的矩形价格拥塞? (C++)

.net - IEnumerable<T> 表示 IEnumerable<T> 序列的 "rest"

c - 在c中的链表中的某个位置插入节点

python - Pandas :生成并绘制平均值

python - 如何将 Python 程序(包括库)发送给 friend ?

python - 尝试在 QGraphicsScene 和 QGraphicsView 中显示 opencv 视频,但没有显示任何内容

java - 在链表开头插入节点