// 向 Trie 中添加一个新的单词 word publicvoidadd(String word){
Node cur = root; for (int i = 0; i < word.length(); i++) { char c = word.charAt(i); if (cur.next.get(c) == null) cur.next.put(c, new Node()); cur = cur.next.get(c); }
if (!cur.isWord) { cur.isWord = true; size++; } }
// 查询单词 word 是否在 Trie 中 publicbooleancontains(String word){
Node cur = root; for (int i = 0; i < word.length(); i++) { char c = word.charAt(i); if (cur.next.get(c) == null) returnfalse; cur = cur.next.get(c); } return cur.isWord; }
Node cur = root; for (int i = 0; i < prefix.length(); i++) { char c = prefix.charAt(i); if (cur.next.get(c) == null) returnfalse; cur = cur.next.get(c); }