我刚刚开始学习数据结构和算法。我正在使用python的"数据结构和算法思维"。作者Narasimha Karumanchi(CareerMonk)。
关于链表的主题,其中一个习题是从链表的末尾找到第n个节点。作者提到,使用哈希表是比暴力破解更好的解决方案。
书中的截图
作者漏掉了实现。我想知道如何在Python中将其编码为类方法或函数。我的意思是,在C/c++中获得内存地址相对容易,但我不知道如何构建哈希表(字典),正如作者在书中建议的那样。
有人能帮忙吗?
谢谢
在Python中,您只需构造一个字典,其中键是链表中的索引,值是链表本身的节点。您不需要知道节点的实际内存地址,因为将它们添加到字典中不会创建它们的副本,而是创建对原始对象的另一个引用。
那么你的代码将以某种集合开始,比如:
linked_index_to_node = {}
然后对于链表中的每一项,它会像这样添加:
# Making some assumptions about what your list looks like here
next_node = linked_list
next_index = 1
while next_node is not None:
linked_index_to_node[next_index] = next_node
next_index += 1
next_node = next_node.next