【发布时间】:2021-04-18 09:24:06
【问题描述】:
我有以下 Trie 实现:
class TrieNode:
def __init__(self):
self.nodes = defaultdict(TrieNode)
self.is_fullpath = False
class Trie:
def __init__(self):
self.root = TrieNode()
def insert(self, word):
curr = self.root
for char in word:
curr = curr.nodes[char]
curr.is_fullpath = True
我正在尝试编写一个方法来检索我的 trie 中所有单词的列表。
t = Trie()
t.insert('a')
t.insert('ab')
print(t.paths()) # ---> ['a', 'ab']
我当前的实现如下所示:
def paths(self, node=None):
if node is None:
node = self.root
result = []
for k, v in node.nodes.items():
if not node.is_fullpath:
for el in self.paths(v):
result.append(str(k) + el)
else:
result.append('')
return result
但它似乎没有返回完整的单词列表。
【问题讨论】:
标签: python data-structures trie