Хотя код сложнее, итеративный порядок заказов может быть более интуитивным, чем другие обходы, потому что другие были реорганизованы, в то время как этот нельзя реорганизовать аналогичным образом.
Используйте первое решение здесь: https://articles.leetcode.com/binary-tree-post-order-traversal/
Интуиция заключается в том, что у рекурсивных функций есть информация, которой нет у итерационных методов, в основном это направление обхода.Когда рекурсивная функция выполняется или откатывается, она знает, откуда она взялась, по какой строке кода она выполняется.То есть, если вы печатаете или обрабатываете текущий узел, вы знаете, что вы уже посетили дочерние элементы, потому что они уже были вызваны рекурсивно.
Итеративное решение может отслеживать его с помощью «предыдущего» указателя, поэтому вы видитепроверка «если предыдущий не является ни дочерним элементом текущего узла», то это означает, что вы двигаетесь вниз и вам нужно идти влево.Другие возможности состоят в том, что предыдущий исходил от левого или правого дочернего узла.Как только все дела будут рассмотрены, у вас есть решение.