class TrieNode { public TrieNode[] children = new TrieNode[26]; public String item = ""; // Initialize your data structure here. public TrieNode() { } } class Trie { private TrieNode root; public Trie() { root = new TrieNode(); } // Inserts a word into the trie. public void insert(String word) { TrieNode node = root; for (char c : word.toCharArray()) { if (node.children[c - 'a'] == null) { node.children[c - 'a'] = new TrieNode(); } node = node.children[c - 'a']; } node.item = word; } // Returns if the word is in the trie. public boolean search(String word) { TrieNode node = root; for (char c : word.toCharArray()) { if (node.children[c - 'a'] == null) return false; node = node.children[c - 'a']; } return node.item.equals(word); } // Returns if there is any word in the trie // that starts with the given prefix. public boolean startsWith(String prefix) { TrieNode node = root; for (char c : prefix.toCharArray()) { if (node.children[c - 'a'] == null) return false; node = node.children[c - 'a']; } return true; } }
class TrieNode { // Initialize your data structure here. char c; boolean leaf; //leaf属性是一个字符串的结尾标志 HashMapchildren = new HashMap (); public TrieNode(char c) { this.c = c; } public TrieNode(){}; } class Trie { private TrieNode root; public Trie() { root = new TrieNode(); } // Inserts a word into the trie. public void insert(String word) { Map children = root.children; //用map构造了一个trie树 for(int i=0; i children = root.children; TrieNode t = null; for(int i=0; i