One thing about our approach to this problem that confused me and slowed me down was the
List<List<TreeNode>>
type returned by #permutations()
. I couldn't remember our previous solution exactly, so I had to play around with the recursion to get the method to work correctly with the return type. Another thing that threw me off was the choice between List<TreeNode>
children and rootNode.children
in method arguments. I found that it made the most sense to do the former, because a root node might not always be present, such as when the #permutations()
List<List<TreeNode>>
was in use. For example, I originally had #treeEquals()
take two root nodes and compare children (rather than taking two lists of nodes), but I realized that this would require me to add additional root nodes when all I had was a list of children, such as when checking the permutations of one tree against the other.I also looked at 5 - Guessing Game II, and it's the same problem—I don't have enough experience to be able to come up with a strategy. I did work through their solution, and I think understand it pretty well, although I wouldn't have been able to come up with that on my own.
No comments:
Post a Comment