TreeNode<V> (int h, int k) { TreeNode<V> p = this; do { int ph; TreeNode<V> q; TreeNode<V> pl = p.left; TreeNode<V> pr = p.right; if ((ph = p.hash) > h) { p = pl; } else if (ph < h) { p = pr; } else if (p.key == k) { return p; } else if (pl == null) { p = pr; } else if (pr == null) { p = pl; } else if ((q = pr.findTreeNode(h, k)) != null) { return q; } else { p = pl; } } while (p != null); return null; }