二叉搜索树与双向链表

题目描述:

输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。

解题思路:

因为要转换成一个排序的双向链表,而中序遍历是排序好的,所以可以将中序遍历进行改写。
二叉搜索树的左边节点都比根节点小,右边节点都比根节点大。而双向链表有指向上一级和下一级的两个指针。
先将链表分成左中右部分。先将左边部分转换成双向链表,左边部分的最右节点与根节点进行相连,根节点的上一级也指向左边部分的最右节点。将右边部分也转换成双向链表,根节点的下一节点指向右边部分的最左节点。左右部分的转换是一个递归过程。
二叉搜索树与双向链表