I just wanted check to see if I'm on the right (reasonable) path and what approach you would have taken.

Exercise 8.2 concerns developing a binomial tree which has memory requirements which grows linearly with the number of time steps required. Since the exponential growth of the simple (recombining) binomial tree arises from adding nodes for all the previous time steps, I was thinking of 'linearising' the memory growth by having the class store only 1 time layer of nodes for the number of time steps required at any one time. We would then move to the time layer before/after since we know the relationship between each time layer (ie. expected/branching present/future value).

I would then think this approach essentially trades off cache memory against computation time. Is that the intention?