Convert Sorted List to Binary Search Tree 将链表转为二叉搜索树
2015-04-28 11:21
519 查看
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./** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ /** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: int cal(ListNode *root) { int len=0; while(root) { len++; root=root->next; } return len; } TreeNode *sortedListToBST(ListNode *head) { int len=cal(head); return solve(head,0,len-1); } TreeNode *solve(ListNode *head,int left,int right) { if(left > right) return NULL; int mid = (left+right)/2; TreeNode *leftNode=solve(head, left, mid-1); for(int i=left;i<mid;i++) head=head->next; TreeNode *rightNode=solve(head->next, mid+1,right); TreeNode *root=new TreeNode(head->val); root->left=leftNode; root->right =rightNode; return root; } };
相关文章推荐
- [LeetCode] Convert Sorted List to Binary Search Tree 将有序链表转为二叉搜索树
- [LeetCode] Convert Binary Search Tree to Sorted Doubly Linked List 将二叉搜索树转为有序双向链表
- 有序递增链表转化为平衡的二叉搜索树(LeetCode: Convert Sorted List to Binary Search Tree )
- LeetCode OJ 之 Convert Sorted List to Binary Search Tree(把有序链表转化为二叉搜索树)
- Leetcode Convert Sorted List to Binary Search Tree 把有序链表转换成二叉搜索树
- LeetCode | Convert Sorted List to Binary Search Tree(链表转换成二叉搜索树)
- [Leetcode] Convert sorted list to binary search tree 将排好的链表转成二叉搜索树
- Convert Sorted List to Binary Search Tree 把有序链表转为BST@LeetCode
- LeetCode OJ:Convert Sorted List to Binary Search Tree(将排序好的链表转换成二叉搜索树)
- [LeetCode 109] - 将已排序链表转换为二叉搜索树 (Convert Sorted List to Binary Search Tree)
- 【leetcode】【单链表】【109】Convert Sorted List to Binary Search Tree
- 【leetcode】【单链表】【109】Convert Sorted List to Binary Search Tree
- 【LeetCode-面试算法经典-Java实现】【109-Convert Sorted List to Binary Search Tree(排序链表转换成二叉排序树)】
- 【LeetCode-面试算法经典-Java实现】【109-Convert Sorted List to Binary Search Tree(排序链表转换成二叉排序树)】
- Convert Sorted List to Binary Search Tree——将链表转换为平衡二叉搜索树 &&convert-sorted-array-to-binary-search-tree——将数列转换为bst
- Leetcode 109 Convert Sorted List to Binary Search Tree 有序单链表构造平衡二插查找树
- [C++]LeetCode: 106 Convert Sorted List to Binary Search Tree (有序链表转AVL树)
- leetcode---Convert Sorted List to Binary Search Tree---二叉搜索树
- leetcode_c++:链表:Convert Sorted List to Binary Search Tree(109)
- Convert Sorted List to Binary Search Tree (递增的链表转化成高度平衡的二叉查找树)【leetcode】