因为二叉搜索树的中序遍历是有序的,所以选择中序遍历二叉树,在遍历的过程中将二叉搜索树转换为双向链表。
使用一个指针 pre 指向当前遍历节点的前一个节点。关键的三步操作
-
前一个节点 pre 的 right 指向当前节点(注意 pre 不能为空)
pre->right = cur
-
当前节点的 left 指向前一个节点
root->left = pre
-
不要忘了 pre 指向当前节点
pre =root
就构成了双向关联,当然上面两步中的关联可能原二叉树中就有,但是不影响答案。