Need help with .Net SOLID design

I’m trying to stick fast to Robert Martin’s SOLID design principles (check for more info https://adevait.com/software/solid-design-principles-the-guide-to-becoming-better-developers) for the first time, and I am not good at it.

In essence, I need a hierarchy of “Node” objects. Some nodes are NodeHosts, some are NodeChildren and some are Both. Everybody’s done this one before, but I can’t figure out how to do it SOLID without over-complicating the design or doing something like this in the node subtypes:

 INodeHostType node;
 public INodeType NodeType
 {
      set 
      {
          node = (INodeHostType)value;
      }
 }

This violates Liskov Substitution Principle right? What's a better way? Here's what I have now.

![4R5F4|660x441](upload://7JaNYSveIePegOGrfDOnRAdA9l9.png)