public static void Main()
var tree = new BinaryTree<int>();
tree.Left = new BinaryTree<int>();
tree.Left.Left = new BinaryTree<int>();
tree.Right = new BinaryTree<int>();
tree.Right.Right = new BinaryTree<int>();
tree.Right.Right.Left = new BinaryTree<int>();
Console.WriteLine(tree.NodeCount());
public interface IBinaryTree<T>
public IBinaryTree<T> Left { get; set;}
public IBinaryTree<T> Right { get; set;}
public static class BinaryTreeExtentions
public static int NodeCount<T>(this IBinaryTree<T> tree)
throw new NotImplementedException();
public class BinaryTree<T> : IBinaryTree<T>
public IBinaryTree<T> Left { get; set; }
public IBinaryTree<T> Right { get; set; }