/**
- The Depth First Traverse of a binary tree involves moving to
- every node as far as possible (to its max depth) along a single branch,
- before backtracking and exploring the next branch to its maximum depth.
- The iterative and recursive implementations below simply collect the
- value of each node as they traverse a tree.
- Moving from root to maximum branch depth.
*/