public override int GetHashCode() { int hash = (113 + (11 * RootValue.GetHashCode()) + (17 * RootKey.GetHashCode()) + (31 * subTrees.Count)); for (int i = 0; i < subTrees.Count; i++) { hash += ((int)Math.Pow(73, i) * subTrees[i].GetHashCode()); } return(hash); }