前几天见到过这个题,觉得打破了自己老套的思路,所以记录了下来。
题目是:输入一颗二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的节点,只能调整结点指针的指向。如图所示
10
/ \
6 14
/ \ / \
4 8 12 16
转换成双向链表
4=6=8=10=12=14=16。
今天又看到了这道题吗,可惜前几天看的都忘了,不过这次可以想到其实这道题目是中序遍历的变形。
在中序遍历的时候,将输出 改为成 链表结点的连接。
创建输的代码就省略了,直接上二叉树转换成链表的代码。
BiTree Convert(BiTree &T)
{
if(!T)return NULL;
BiNode *List=NULL;
BiTreeConvertToList(T,&List);
//