public List <int> InOrder() { List <int> result = new List <int>(); if (LeftNode != null) { result.AddRange(LeftNode.InOrder()); } result.Add(Id); if (RightNode != null) { result.AddRange(RightNode.InOrder()); } return(result); }