public static void PostOrderTraversal <T>(this BinaryTreeNode <T> node, Action <BinaryTreeNode <T> > action)
 {
     TraverseTree.PostOrderTraversal(node, n => new[] { n.Left, n.Right }, action);
 }
 public static void PostOrderTraversal <T>(this TreeNode <T> node, Action <TreeNode <T> > action)
 {
     TraverseTree.PostOrderTraversal(node, n => n.ChildNodes, action);
 }