It is in fact incorrect.  The incorrect assumption is nested structure implies nested destructor calls.  This can be avoided by ensuring each node in the structure does not destroy the next node_ptr (explicitly or more likely implicitly).  Instead, the destruction has to happen more manually (internally to the overall data structure - not by the user).  If the structure only recurses on one child, it can be performed as a loop.