This week's book giveaway is in the OCPJP forum. We're giving away four copies of OCA/OCP Java SE 7 Programmer I & II Study Guide and have Kathy Sierra & Bert Bates on-line! See this thread for details.
1. Create the binary tree, instead of filling a binary tree -- because in real life, an "empty binary tree" means that it doesn't exist. No one encounters a problem of having a binary tree that needs filling.
2. Even harder homework, create the binary tree in a balanced manner.
3. Even harder. Do problem 2 (create balance), while you are filling it.... meaning one pass, create while transfer data from array.
4. Even harder. Do problem 3 (create balance while filling) from an unsorted array... meaning add sorting to the one pass.