剑指offer面试题-二叉搜索树转换成一个排序的双向链表
来源:互联网 发布:python griddata 编辑:程序博客网 时间:2024/06/01 10:35
- 题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表,要求不能创建任何新的结点,只能调整树中节点的指向,树的结点定义如下:
struct BinaryTreeNode{ BinaryTreeNode(char data) :_pLeft(NULL) , _pRight(NULL) , _data(data) {} BinaryTreeNode *_pLeft; BinaryTreeNode *_pRight; char _data;};
例图:
思路:由于二叉搜索树是排序的数据结构,左子节点的值总是小于父节点的值,右子节点的值总是大于父节点的值,,因此我们可以中序遍历树中的每一个节点,遍历到根时根据排序链表的定义,将跟的左指针域与左子节点中最大的链接起来,右指针域与右子节点的最小的链接起来。
实现代码:
BinaryTreeNode *TreetoList(BinaryTreeNode *pRoot, BinaryTreeNode *&pPre){ if (NULL == pRoot) return NULL; TreetoList(pRoot->_pLeft,pPre); if (pRoot) pRoot->_pLeft = pPre; if (pPre) pPre->_pRight = pRoot; pPre = pRoot; TreetoList(pRoot->_pRight,pPre); return pRoot;}
阅读全文
0 0
- 剑指offer面试题-二叉搜索树转换成一个排序的双向链表
- 【面试题】剑指Offer-27-将二叉搜索树转换成排序的双向链表
- 【面试题】剑指offer27--将一颗二叉搜索树转换成一个排序的双向链表
- 剑指offer 面试题27 二叉搜索树转换为排序双向链表
- 《剑指Offer》面试题:二叉搜索树转换为双向链表
- 【面试题】二叉搜索树转换双向链表
- 360面试题——搜索二叉树转换成有序的双向链表
- 剑指offer27---将二叉搜索树转换成一个排序的双向链表
- 【二叉树】将二叉搜索树转换成一个排序的双向链表
- 二叉树--将二叉搜索树转换成一个排序的双向链表
- [剑指offer][面试题27]二叉搜索树与双向链表
- [剑指offer]面试题27 二叉搜索树与双向链表
- 剑指Offer:面试题27 二叉搜索树与双向链表
- 《剑指Offer》 面试题27:二叉搜索树与双向链表
- 《剑指Offer》学习笔记--面试题27:二叉搜索树与双向链表
- 剑指offer 面试题27—二叉搜索树与双向链表
- 剑指offer--面试题27:二叉搜索树与双向链表--Java实现
- 【剑指Offer学习】【面试题27:二叉搜索树与双向链表】
- Navicat for MySQL
- 170730 Learning materials for D-S and tensorflow-CNN
- HDU2549-壮志难酬
- Minor GC、Major GC和Full GC之间的区别
- 自己写coms_ov7740驱动
- 剑指offer面试题-二叉搜索树转换成一个排序的双向链表
- JSP中forward和include的区别
- java基础总结二(变量、数据类型、运算符)
- 1161: 字符串长度(指针专题)
- CentOS配置YUM源
- 652. Find Duplicate Subtrees
- PHP页面间参数传递的四种方法详解
- 【hadoop】(一)伪分布式hadoop集群安装
- Java基础[6]时间API