private void validateBinaryNode(BinaryNode root) {
    if (root == null) {
      throw new IllegalArgumentException("You can't use null BinaryNodes as argument.");
    }
  }
Slower implementation created to resolve one of the questions of problem 13, print the binary
tree by level without use any additional data structure for the main algorithm.
The complexity order in space terms is O(N) because we are using one structure to return the
result. The complexity order in time terms is O(N*M) where the N is the depth of the Binary
Tree and M is the number of elements below one level.

To be able to implement this approach you need to know the depth of the tree before to start.
This approach is based on recursion and uses the level param as counter to go through the
binary tree.
src/main/java/com/github/pedrovgs/problem13/BinaryTreeByLevel.java