I'm sure a much more thorough answer will arrive shortly from someone much more knowledgeable than me, but:
C# is a garbage-collected language. So most memory management problems and solutions in C++ simply won't have an analogue. If you ignore everything to do with memory management, then std::unique_ptr is essentially no different from a regular pointer, so you can get away with pretending that that class isn't even there and just focus on the important conceptual part, namely: A SceneNode has pointers to other SceneNodes, one of them is its parent, and the others are its children.