@gregcaporaso, it isn't valid to assume that a node w/o `length` is root. I recommend using `TreeNode.is_root`

I think the most direct route forward is to use @wdwvt1 imp. except to replace the while loop with `TreeNode.accumulate_to_ancestor`