private void MergeEmptyChildren(PartitionNode <T> node) { if (node.HasChildren() && node.AreExistingChildrenEmpty()) { node.MergeEmptyChildren(); } if (node.IsRootNode() || !node.IsEmpty() || node.HasChildren()) { return; } foreach (var parent in node.GetParent()) { MergeEmptyChildren(parent); } }