思路:
将二叉搜索树转化为有序双向链表,因为二叉搜索树是有规律的,所以类似于中序遍历,中序遍历的结果是有序的(升序)。
首先找到双向链表的头结点,以便以后找到该链表,返回该链表的头指针。该程序是采用递归的,找到根结点的左子树的最后一个结点,对根结点的左右指针进行修改,使得具有双向链表的性质,即和左子树的最后一个结点互相指向。到这里,根结点前面的结点全都变为双向循环链表,我们需要对最后一个结点左子树的最后一个结点进行更新,将其指向后走到根结点,如果根结点有右子树,对右子树进行链表转换。
最终的结构图:
class Solution {
public:
TreeNode* Convert(TreeNode