109. Convert Sorted List to Binary Search Tree
2016-04-20 13:09
225 查看
Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.
【思路】将有序链表转换成有序数组,利用108的递归方法求得。
【思路】将有序链表转换成有序数组,利用108的递归方法求得。
/** * 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* dfs(vector<int>& nums, int first, int last){ if(first <= last) { int mid = first +(last -first ) / 2; TreeNode* root = new TreeNode(nums[mid]); root->left = dfs(nums, first, mid-1); root->right = dfs(nums,mid+1, last); return root; } else return NULL; } TreeNode* sortedListToBST(ListNode* head) { if(head==NULL) return NULL; vector<int> nums; ListNode* p =head; while(p) { nums.push_back(p->val); p = p->next; } TreeNode* root = dfs(nums, 0, nums.size()-1); return root; } };
相关文章推荐
- Caused by: java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addServlet
- 将 Book-Crossing Dataset 书籍推荐算法中 CVS 格式测试数据集导入到MySQL数据库
- UML 的基本组成
- centos安装配置hadoop超详细过程
- javaweb中两种jsp声明
- 怎样删除保存的无线上网WiFi密码
- 使用 HTML5 WebSocket 构建实时 Web 应用
- 电脑弹出磁盘空间不足怎么办
- Spring MVC 3.0版本 深入讲解
- scrollview中linearlayout布局不全屏
- 【HDU】 1222 Wolf and Rabbit
- weblogic 启用管理端口(administration port) 分离管理和应用端口
- 软件工程管理——第七次作业
- 大数阶乘末尾0的个数问题 数字的奇妙
- Yacc基础语法分析程序(无附加实验内容)
- 用 R 进行高频金融数据分析简介
- 单源最短路问题模板
- ToolBar修改返回按钮图标
- telnet 的使用
- STL中map用法详解