private void validateBinaryNode(BinaryNode root) {
    if (root == null) {
      throw new IllegalArgumentException("You can't pass a null BinaryNode.");
    }
  }
Iterative implementation of this binary tree traversal. The complexity order in time terms of
this algorithm is O(N) where N is the number of nodes in the tree. In space terms the
complexity order of this algorithm is also O(N) where N is the number of nodes we have to
store in the auxiliary data structure, the stack.
src/main/java/com/github/pedrovgs/problem14/BinaryTreePreOrder.java