There's probably more nuance with 2.29 than is led onto here. The problem appears straightforward and there seems to be simpler solutions out there than the one described in the article.
Did the author overthink it or are the simple solutions not correct?
I think the author may have overthought it, but it kind of depends on comfort with recursion and how focused he was when working on the problem.
If you aren't comfortable with recursion, I can see it taking a while.
It's basically a walk down a binary tree with some extra logic. You have to write two recursive functions, one each for (b) and (c) but they have basically the same structure with different return values. The function for (b) can be used for (c) (not the most efficient, but it does work). (d) requires minor modifications to the functions created in (a)-(c) so you can start with copies of the originals and make the change, I think it's a one symbol change in each function, or maybe two.
I think the author made a typo, and they actually meant to refer to 2.92, not 2.29. The table preceding the part mentioning 2.29 only includes 2.92. And 2.29 doesn't include the text "This is not easy!”, whereas 2.92 does.
That makes a lot more sense. It also matches the times they record for the exercise. For context, 2.92 is:
> Exercise 2.92. By imposing an ordering on variables, extend the polynomial package so that addition and multiplication of polynomials works for polynomials in different variables. (This is not easy!)
2.29 is what I described in my other comment, it's a pair of functions walking a binary tree with conditional logic based on if it's an interior or exterior node, returning either a sum or a true/false value. Which is not hard at all and their time was only 83 minutes. Versus their claimed time of 2400 minutes for 2.92.
Did the author overthink it or are the simple solutions not correct?