Представьте, что вы идете, начиная с корня.
- Вы находитесь на A;
- Идите к левому ребенку, вы попадаете в B;
- Прогулка к левому ребенку, C;
- Тупик, ты поворачиваешь назад, все еще C;
- Назад в B;
- Подойдите к правому ребенку, к D;
- Тупик, поверните назад, неподвижно D;
и т.д.
Это просто обход такого рода как в, так и в обратном направлении.
Между посещением левого и правого детей в обходе предварительного заказа вы посещаете корень (потому что вы должны вернуться к нему, чтобы идти дальше), и вы можете думать о листьях как о корнях, не имеющих детей, и null
будет просто вернитесь в кратчайшие сроки (отсюда два последовательных посещения листьев, и узлы имеют только правильных потомков).