# LeetCode 208 Implement Trie (Prefix Tree)

Implement a trie with insert, search, and startsWith methods.

Note:
You may assume that all inputs are consist of lowercase letters a-z.

class TrieNode {
public:
// Initialize your data structure here.
TrieNode() {
for(int i = 0; i < 26; i++)
children[i] = NULL;
contain_self = false;
}
TrieNode *children[26];
bool contain_self;
};

class Trie {
public:
Trie() {
root = new TrieNode();
}

// Inserts a word into the trie.
void insert(string word) {
TrieNode *cur = root;
for(int i = 0; i < word.length(); i++)
{
int curidx = word[i] - 'a';
if(cur->children[curidx] == NULL)
{
cur->children[curidx] = new TrieNode();
}
cur = cur->children[curidx];
}
cur->contain_self = true;
}

// Returns if the word is in the trie.
bool search(string word) {
TrieNode *cur = root;
for(int i = 0; i < word.length(); i++)
{
int curidx = word[i] - 'a';
if(cur->children[curidx] == NULL)
return false;
else
cur = cur->children[curidx];
}
return cur->contain_self;
}

// Returns if there is any word in the trie
// that starts with the given prefix.
bool startsWith(string prefix) {
TrieNode *cur = root;
for(int i = 0; i < prefix.length(); i++)
{
int curidx = prefix[i] - 'a';
if(cur->children[curidx] == NULL)
return false;
else
cur = cur->children[curidx];
}
return true;
}

private:
TrieNode* root;
};

// Your Trie object will be instantiated and called as such:
// Trie trie;
// trie.insert("somestring");
// trie.search("key");

#### Leetcode 208: Implement Trie (Prefix Tree)

2015-05-09 06:59:37

#### LeetCode 208: Implement Trie (Prefix Tree)

2015-06-27 15:32:38

#### LeetCode208:Implement Trie (Prefix Tree)

2015-07-03 15:44:12

#### LeetCode208 Implement Trie (Prefix Tree) Java

2016-04-22 21:59:48

#### java 前缀树实现 leetcode 208: Implement Trie (Prefix Tree)

2015-12-21 20:54:11

#### [LeetCode]Implement Trie(Prefix Tree)，解题报告

2015-05-15 14:12:30

#### Leetcode 208 Implement Trie (Prefix Tree) 实现字典树 (前缀字典树)

2015-08-14 11:27:41

#### 【LeetCode】208. Implement Trie (Prefix Tree) 解题报告（Python）

2018-02-27 14:59:35

#### LeetCode 208 Implement Trie (Prefix Tree)（实现前缀树）（*）

2016-06-09 11:22:28

#### Implement Trie (Prefix Tree) LeetCode Java

2015-06-01 19:50:30