private void HookNodeLeftOrRight(SetNode <T> parent, SetNode <T> formerChild, SetNode <T> currChild) { if (parent == null) { this.root = currChild; return; } else if (parent.LeftChild == formerChild) { parent.LeftChild = currChild; } else { parent.RightChild = currChild; } }