New Copy Constructor List::List(const List &o) { head = Node::deep_copy(o.head); } Much better