This was a solution I did in groovy. I have posted the entire package on google docs. The notable points to the solution are as follows:
- done in groovy
- done with object oriented principles and design
- uses recursion
- contains some high level documentation
https://docs.google.com/leaf?id=0B62m4BA4zKvjMTdlZTNkNDktN2IyMS00YjcxLWJkN2ItZDc5MjNhMjYwOWE4&sort=name&layout=list&num=50
You can contact me with questions at