Printing The Longest Path from Root to Leaf in Binary Tree
Though I don't believe this is the most efficient solution to the problem, it definitely works and I figured I would share it here and see if anyone had any feedback. 

private static void printMain(BTNode node, String[] path, int arrayCounter) {
    if (node == null) {
        return;
    }

    path[arrayCounter++] = node.data;

    if (node.leftNode == null &amp;&amp; node.rightNode == null) {
        printArray(path);
    }
    else {
        printMain(node.leftNode, path, arrayCounter);
        printMain(node.rightNode, path, arrayCounter);
    }       
}


This print function adds each node's value to an array until it reaches a node that has a left and right child that is null. This means it has reached the end and the array now has a path from the root node to a leaf node. It's not necessarily the longest path though. Here in the printArray function, it checks to see if the last element of the array is null. 

Since the array is initialized to only be as large as the height found in the algorithm in my original question, if the last element is null this is not the longest path. If it is we print.

private static void printArray(String[] path) {
    if (path[max] != null) {            
        for (String node : path) {
            System.out.print(node + ", ");
        }
        System.out.print("\n");         
    }
}


The added benefit of this approach is that it will print each and every path that is the longest. Meaning if there were 3 nodes that are of height 3, each of the 3 would be printed as opposed to just the one. I still think it could be done more efficiently but this is certainly one solution.