【发布时间】:2021-12-22 17:54:27
【问题描述】:
我正在实现一个仅包含值的链表,并尝试利用递归遍历列表以在列表中的特定位置插入特定值。我已经解决了如何使用 while 循环来执行此操作,但是,我无法将其转换为递归函数。
insert 方法包含值和索引作为参数,如果位置为 0,函数会将头节点设置为新值。否则,我创建一个new_node变量设置为节点的头部,当位置大于1时,new_node设置为下一个节点,index减1。我可以使用这种方法插入但我无法使用递归来实现这一点。
我的迭代解决方案
class Node:
def __init__(self, data, node=None):
self._data = data
self._next = node
def get_next(self):
return self._next
def get_data(self):
return self._data
def set_next_node(self, val):
self._next = val
class LinkedList:
def __init__(self):
self._head = None
def get_head(self):
return self._head
def set_head(self, value):
self._head = value
def insert(self, value, index):
if index == 0:
self._head = Node(value, self._head)
return
new_node = self._head
while index > 1:
new_node = new_node.get_next()
index -= 1
new_node._next = Node(value, new_node.get_next())
【问题讨论】:
标签: python recursion linked-list nodes