美文网首页面试题之算法知识
二叉排序树转化成双向链表

二叉排序树转化成双向链表

作者: 掰不开桃子的男人 | 来源:发表于2017-12-27 10:03 被阅读6次

问题描述:
微软面试题,输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。

思路:
二叉排序树,通过中序遍历就可以得到排序数,再改变前后指针就可以了

过程:

过程
代码:
void bst_2_list(Node *ptr, Node *Head, Node *Tail) //将树转换成双向链表  
{   
    if(ptr==NULL)   
        return;  
    bst_2_list(ptr->pleft, Head, Tail);  

    ptr->pleft=Tail;   
    if(Tail)   
        Tail->pright=ptr;   
    else   
        Head=ptr;   
    Tail=ptr;   
  
    bst_2_list(ptr->pright, Head, Tail);   
}  

参考:
http://blog.csdn.net/coolingcoding/article/details/8016238

相关文章

  • 排序二叉树转换为排序双向链表

    题目:输入一棵二叉排序树,将该二叉排序树转换成一个排序的带头结点的双向链表。如: 转换成双向链表4<->6<->8...

  • 二叉排序树转双向链表

    排序二叉树转换为排序双向链表 题目:输入一棵二叉排序树,将该二叉排序树转换成一个排序的带头结点的双向链表。如: 转...

  • 二叉排序树转化成双向链表

    问题描述:微软面试题,输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整...

  • 双向链表&双向循环链表

    链表分为:单链表、单向循环链表、双向链表、双向循环链表本节主要说明:双向链表、双向循环链表 定义结点 一、双向链表...

  • 线性表-双向链表与双向循环链表

    双向链表 双向链表示意图如下: 数据结构定义 创建双向链表 双向链表插入元素 双向链表删除元素 双向链表打印元素 ...

  • day03-双向链表

    双向链表: 单向链表只能单向查找,双向链表可以双向查找。 啥是双向链表? 双向链表可以双向查数据,所以就不存在单向...

  • 线性表--链式存储结构--双向链表

    双向链表 一、双向链表结构 双向链表结点结构 既然单链表可以有循环链表,那么双向链表当然也可以有。 由于这是双向链...

  • 双向链表和双向循环链表

    双向链表 线性表-双向链表的结点结构: 带头结点的双向链表: 1.双向链表初始化 2.遍历双向链表 2.双向链表插...

  • 数据结构与算法之双向链表(3.3)

    目录 双向链表简介双向链表重要方法讲解实战检测双向链表,单向链表性能对比 一 双向链表简介 双向链表-只有一个元素...

  • 双向链表&双向循环链表

    一、双向链表 带有前驱结点、后区节点 双向链表的创建 双向链表插入-逻辑 双向链表删除 删除双向链表指定的元素 二...

网友评论

    本文标题:二叉排序树转化成双向链表

    本文链接:https://www.haomeiwen.com/subject/uvbygxtx.html