二元查找树转变成排序的双向链表

来源:互联网 发布:中国水果消费数据统计 编辑:程序博客网 时间:2024/06/11 22:31

输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。例如把下述二叉查找树

10

/ /

6 14

/ / / /

4 8 12

转换成双向链表,即得:

4=6=8=10=12=14=16。

void tree2Dll(TNode* root, TNode*& tail) {if (!root) {return;}if (root->left) {tree2Dll(root->left, tail);}TNode* tmp = root;tmp->left = tail;if (tail) {tail->right = tmp;}tail = tmp;if (root->right) {tree2Dll(root->right, tail);}}


1 0
原创粉丝点击