Develop

Example:
```
std::auto_ptr<Node> node(n);

if (root) root = node;
else addNode(root, node, false);
```

If the root were preallocated this would become trivial and the intermediate `auto_ptr` would be unneeded.