private void TraverseAndAdd(SGLNode <T> parent, SGLNode <T> newSGLNode) { if (parent.Id() < newSGLNode.Id()) { if (parent.GetRight() == null) { parent.SetRight(newSGLNode); } else { TraverseAndAdd(parent.GetRight(), newSGLNode); } } else { if (parent.GetLeft() == null) { parent.SetLeft(newSGLNode); } else { TraverseAndAdd(parent.GetLeft(), newSGLNode); } } }