There are many issues to consider when implementing the Composite pattern:
A possible solution is for children to store multiple parents. But that can lead to ambiguities as a request propagates up the structure. The Flyweight shows how to rework a design to avoid storing parents altogether. It works in cases where children can avoid sending parent requests by externalizing some or all of their state.