Leetcode143: Convert Sorted List to Binary Search Tree
2015-11-06 18:12
399 查看
Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.
与排序好的数组转化为二分搜索树的题相似,可以先把链表转化为数组在转化为树。
与排序好的数组转化为二分搜索树的题相似,可以先把链表转化为数组在转化为树。
/** * 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* createTree(vector<int> &a, int left, int right) { if(left>right) return NULL; int mid = (left+right)/2; TreeNode *node = new TreeNode(a[mid]); TreeNode *Tleft = createTree(a, left, mid-1); TreeNode *Tright = createTree(a, mid+1, right); node->left = Tleft; node->right = Tright; return node; } TreeNode* sortedListToBST(ListNode* head) { vector<int> a; ListNode *ptr = head; while(ptr) { a.push_back(ptr->val); ptr = ptr->next; } return createTree(a, 0, a.size()-1); } };
相关文章推荐
- cin标准输入流的错误处理
- mysql分表操作
- 发送http请求获取响应
- PLSQL导出CSV文件中文存在乱码
- 《Java程序员面试宝典(第4版)》 试读感想
- Linux for周期运行命令注意事项
- 移动webAPP前端开发技巧汇总2
- 关于Odoo 选择供应商实现产品过滤功能
- Mac上小巧实用的GIF格式录屏软件 LICEcap
- Activity业务层与网络层之间处理
- DialogActivity
- lamp一键安装脚本
- iOS登陆选择主界面
- locate命令
- tomcat配置项目的图片路径不在项目下的处理
- (解题报告)HDU1003---Max Sum
- linux:vi 替换命令
- 时光拾忆(一)
- Bootstarp 列偏移
- tomcat catalina.sh JAVA_OPTS参数说明与配置