Итак, у вас есть проблемы с тем, что вы посетили самый высокий и прошли второй по величине и не знаете, как go вернуться?
5
/ \
1 10
Но вы знаете, что делать в этом ситуация?
5
/ \
1 10
/ \
7 12
Хотя это точно так же, как узел 5
не проблема, создание важного дерева:
10
/ \
7 12
Я предполагаю, что настоящая проблема заключается в когда у вас есть это дерево без родителей:
10
/
7
Или, что еще хуже, у вас есть это, когда у вас действительно нет ответа:
10
Я полагаю, вы сохраните 2 узла:
(define (find-second-biggest-helper parent node)
(if (not (tree-null? (right node)))
(find-second-biggest-helper node (right node)
...))