leetcode[109]:Convert Sorted List to Binary Search Tree
2015-07-26 19:17
549 查看
Convert Sorted List to Binary Search Tree
Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.
将有序链表遍历成有序数组,再用leetcode[108]:Convert Sorted Array to Binary Search Tree的方法即可。
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; * struct ListNode *next; * }; */ /** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ struct TreeNode* sortedArrayToBST(int* nums, int numsSize) { struct TreeNode* tmp; if(numsSize==0) return NULL; tmp=(struct TreeNode*)malloc(sizeof(struct TreeNode*)); tmp->val=nums[numsSize/2]; tmp->left=sortedArrayToBST(nums, numsSize/2); if(numsSize%2==0) tmp->right=sortedArrayToBST(nums+numsSize/2+1, numsSize/2-1); else tmp->right=sortedArrayToBST(nums+numsSize/2+1, numsSize/2); return tmp; } struct TreeNode* sortedListToBST(struct ListNode* head) { int num[100000],i,j; for(i=0;head;i++) { num[i]=head->val; head=head->next; } return sortedArrayToBST(num, i); }
将有序链表遍历成有序数组,再用leetcode[108]:Convert Sorted Array to Binary Search Tree的方法即可。
相关文章推荐
- 命令行快速技巧:如何定位一个文件
- cmd tree命令 以树形格式罗列文件
- 推荐8款jQuery轻量级树形Tree插件
- tree 以树形格式罗列文件
- EasyUI Tree+Asp.net实现权限树或目录树导航的简单实例
- E3 tree 1.6在Firefox下显示问题的修复方法
- js树形控件脚本代码
- MYSQL的binary解决mysql数据大小写敏感问题的方法
- JAVA LinkedList和ArrayList的使用及性能分析
- LinkedList学习示例模拟堆栈与队列数据结构
- Spark Decision Tree
- ArrayList和LinkedList的主要区别
- 带check的treeView
- extjs 4 treepanel locked and expand
- JQuery EasyUI 实现tree的右键菜单
- flex tree 的两个小技巧
- Tree.log
- gnome文件管理器(nautilus)树形结构文件窗口 多窗口
- 排序binary tree
- InnoDB--------查询IOT B+ Tree的高度