private void seekNext() {
      if (current == null) return;
      if (current.avlRight != null) {
        stack[height++] = current;
        current = (TNode) current.avlRight;
        while (current.avlLeft != null) {
          stack[height++] = current;
          current = (TNode) current.avlLeft;
        }
      } else {
        TNode node;
        do {
          if (height == 0) {
            current = null;
            return;
          }
          node = current;
          current = (TNode) stack[--height];
        } while (current.avlRight == node);
      }
    }
Reset the iterator, and seeks to the specified key
@param root          the current root of the tree
@param key           the key for the node we are trying to find
@param keyComparator the comparator to use to match node and key
hbase-common/src/main/java/org/apache/hadoop/hbase/util/AvlUtil.java