二叉搜索树与双向链表
2015-11-05 21:29
211 查看
题目描述
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。class Solution { public: TreeNode *convert(TreeNode *p){ if(p == NULL){ return p; } TreeNode*q; if(p->left) { q = convert(p->left); while(q->right) q = q->right; q->right = p; p->left = q; } if(p->right){ q = convert(p->right); while(q->left) q = q->left; q->left = p; p->right = q; } return p; } TreeNode* Convert(TreeNode* pRootOfTree) { if(!pRootOfTree) return pRootOfTree; pRootOfTree = convert(pRootOfTree); while(pRootOfTree->left) pRootOfTree = pRootOfTree->left; return pRootOfTree; } };
相关文章推荐
- map写数据到本地磁盘过程解析----spill和merge
- 冒泡排序文法
- 每个程序员都会的 35 个 jQuery 小技巧
- 1105课堂整理
- 学习JAVA的真实感想
- Java: 23种设计模式全解析之二
- 【POJ 1330】 Nearest Common Ancestors(LCA)
- docker 相关操作
- 【LEETCODE】199-Binary Tree Right Side View
- _MSC_VER详细介绍
- 汇编3个字节型变量倒序输出
- Java IAQ:很少被回答的问题
- 翻译随笔(2)——摆脱首份工作综合征
- js setTimeout 和 setInterval实现多线程
- 每个程序员都会的 35 个 jQuery 小技巧
- Openjudge-NOI题库-出书最多
- 测试博客园Markdown编辑器
- 遥感影像数据产品级别概述
- [Leetcode]Clone Graph
- Openstack常用命令