我已经成功实现了向后链接列表,但我正在尝试找出如何实现向前链接列表,但我似乎不知道如何实现。问题出在我的 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/