一般二叉树遍历都是自顶向下的,这样自然。但是也有用到自底向上的时候,如下例:
https://leetcode.com/problems/convert-sorted-list-to-binary-search-tree/discuss/?currentPage=1&orderBy=hot&query=
可观察到我的第一次ac和第二次ac,代码结构相同,关键区别在于第二次用到了自底向上。代码结构 依然为自顶向下,但是嵌入的自底向上的代码提供了关键的root信息。
这样做的依据是什么?题目的solution中给出了解释:“whenever we are done building the left half of the BST, the head pointer in the linked list will point to the root node or the middle node (which becomes the root).”