【leetcode】Convert Sorted List to Binary Search Tree
2015-06-02 22:12
381 查看
Convert Sorted List to Binary Search Tree
思路:可以参考下Convert Sorted Array to Binary Search Tree。但是list无法直接访问下标,需要进行一些处理,可以通过自下到顶的方式来写。注意的是:
函数传递参数为ListNode* &head (仅存在在函数的传递参数中), 表示函数结束之后,head的修改之仍有效,而ListNode* head函数结束之后,head恢复原始情况,就没法使用了。
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: TreeNode* convert(ListNode* &head, int s, int e) { if(s>e) return NULL; int mid=s+(e-s)/2; TreeNode* left=convert(head,s,mid-1); TreeNode* root=new TreeNode(head->val); root->left=left; head=head->next; root->right=convert(head,mid+1,e); return root; } TreeNode* sortedListToBST(ListNode* head) { if(head==NULL) return NULL; int n=0; ListNode *p=head; while(p) { p=p->next; n++; } return convert(head,0,n-1); } };
相关文章推荐
- ASP.NET MVC - 启动创建项目,未能加载错误
- node.js 学习
- Java系统变量设置方式
- 最后期限3
- 4.1-6
- 选择排序
- UIView UIButton UIImageView 添加事件
- 图论小结(6.7)
- CentOS 6.3下Samba服务器的安装与配置(不错)
- HDU1849 Rabbit and Grass()
- Android学习 - Material Design设计规范
- Android Loader详解
- mac os最大文件数,maxfiles
- 内联函数
- 内联函数
- struts2快速入门
- 如何使用git,初学者教程
- Dungeon Game
- Android的SeekBar和RateBar的使用-android学习之旅(三十二)
- Android的SeekBar和RateBar的使用-android学习之旅(三十二)