剑指offer 27二叉搜索树与双向链表
2016-05-26 09:37
351 查看
class Solution { public: void ConvertNode(TreeNode* pRootOfTree,TreeNode** pre) { if(pRootOfTree) { TreeNode* cur=pRootOfTree; if(cur->left) ConvertNode(cur->left,pre); cur->left=*pre; if(*pre) (*pre)->right=cur; *pre=cur; if(cur->right) ConvertNode(cur->right,pre); } } TreeNode* Convert(TreeNode* pRootOfTree) { if(!pRootOfTree) return NULL; TreeNode* pre=NULL; ConvertNode(pRootOfTree,&pre); while(pre->left) { pre=pre->left; } return pre; } };
二叉搜索树的前序遍历就是从小到大输出,因此这里是在中序遍历的基础上进行链表操作。left指针指向前一个数,right指针指向后一个数,在cur结点,设置其left指针,并设置pre结点的right指针。这样递归地把树改为链表。
相关文章推荐
- JS原型链
- js url传值中文乱码之解决
- C#清除HTML标签方法汇总
- 浅谈JSON解析!
- css-去除默认样式
- JS hashMap实例详解
- jquery选择器案例
- jQuery验证插件validate使用方法详解
- 使用Gson解析复杂的json数据
- 怎么使用jquery判断一个元素是否含有一个指定的类(class)
- 动态加载js、css的实例代码
- jQuery操作checkbox
- 深入理解JavaScript系列+ 深入理解javascript之执行上下文
- css word-wrap和word-break强制换行
- 我们应该如何去了解JavaScript引擎的工作原理 系列
- js检测输入框是否为空或是只输入的空格
- servlet和jsp页面过滤器Filter的作用及配置
- jQuery对象和DOM对象区别和联系
- 用jQuery获取标签下标
- jQuery动画入门--顺序执行