题目
windliang way
对左右子树进行拼接的过程
1 | 1 |
1 | /** |
后序遍历
二叉树展开成为链表的结果就是 先序遍历 的结果。
但是按 先序遍历 结果来处理的话,更新当前结点的右指针的时候,当前结点的右指针就没有保存下来了。
1 | 1 |
所以思考 反过来,通过后序遍历 来处理。
1 | // postOrder |
即,每遍历一个节点,考虑将当前节点的 右指针 指向上一个节点。
1 | /** |
非递归先序遍历
利用栈保存上一个节点的右指针,并将其更新为当前节点。
1 | /** |
Reference
https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list/solution/xiang-xi-tong-su-de-si-lu-fen-xi-duo-jie-fa-by--26/