docs: private void rotateLeft(TreeEntry<E> p) {
          if (p != null) {
              TreeEntry<E> r = p.right;
              p.right = r.left;
              if (r.left != null) {
                  r.left.parent = p;
              }
              r.parent = p.parent;
              if (p.parent == null) {
                  root = r;
              } else if (p.parent.left == p) {
                  p.parent.left = r;
              } else {
                  p.parent.right = r;
              }
              r.left = p;
              p.parent = r;
  
              // Original C code:
              // x->maxHigh=ITMax(x->left->maxHigh,ITMax(x->right->maxHigh,x->high))
              // Original C Code:
              // y->maxHigh=ITMax(x->maxHigh,ITMax(y->right->maxHigh,y->high))
              p.maxHigh = Math.max(
                      p.left != null ? p.left.maxHigh : Long.MIN_VALUE,
                      Math.max(p.right != null ? p.right.maxHigh : Long.MIN_VALUE,
                              p.high));
              r.maxHigh = Math.max(p.maxHigh,
                      Math.max(r.right != null ? r.right.maxHigh : Long.MIN_VALUE,
                              r.high));
          }
      }