题目描述[原题链接][https://www.acwing.com/problem/content/description/87/]
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。
要求不能创建任何新的结点,只能调整树中结点指针的指向。
注意:
- 需要返回双向链表最左侧的节点。
例如,输入下图中左边的二叉搜索树,则输出右边的排序双向链表。
算法描述
每次从根节点开始向左右子树递归,每次返回子树最左边和最右边的节点:
- 左子树的最右边的节点的
right
指针指向根节点,根节点的left
指针指向左子树的最右边节点 - 右子树的最左边的节点的
left
指针指向根节点,根节点的right
指针指向左子树的最左边节点
C++代码
1 | /** |
Java代码
1 | /** |