Doc* Doc::findRep() { if (!parent_) { return this; } else { // Flatten the tree structure: important optimization to attain inverse ackermann running time parent_ = parent_->findRep(); return parent_; } }