public V get(final String key) {
final Node<V> x = get(root, key, 0);
if (x == null) return null;
return x.val;
}
private Node<V> get(final Node<V> x, final String key, final int d) {
if (x == null) return null;
if (d == key.length()) return x;
final char c = key.charAt(d);
return get(x.next[c], key, d+1);
}