挺简单的,主要是缕清分支return search的关系。判断一个单词是否存在即search方法去查找树中有无这棵子树,并且检查是不是最后一个节点,prefix不用检查
1.前缀树的创建
(1)初始化
var Trie = function() {
this.children={}
};
(2)插入
Trie.prototype.insert = function(word) {
let letter=this.children
for(const char of word){
if(!letter[char]){
letter[char]={}
}
letter=letter[char]
}
letter.isEnd=true
};
2.search方法
Trie.prototype.search = function(word) {
let letter=this.children
for(const char of word){
if(letter[char]){
letter=letter[char]
}else return false
}
if(letter.isEnd===true){
return true
}
return false
};
3.查找前缀
Trie.prototype.startsWith = function(prefix) {
let letter=this.children
for(const char of prefix){
if(letter[char]){
letter=letter[char]
}
else{return false}
}
return true
};