private IEnumerable <T> PreOrderTraversal(Node <T> node) { return(node == null ? Enumerable.Empty <T>() : node .Concat(PreOrderTraversal(node.Left)) .Concat(PreOrderTraversal(node.Right))); }