[LeetCode] Convert Sorted List to Binary Search Tree
2014-12-25 13:36
501 查看
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 length(ListNode *p){ int cnt = 0; while(p){ cnt ++; p = p -> next; } return cnt; } TreeNode *generate(ListNode *node,int left,int right){ if(left > right) return NULL; int mid = (left + right) / 2; ListNode *p = node; for(int i = left;i < mid;i ++) p = p -> next; TreeNode *tleft = generate(node,left,mid - 1); TreeNode *tright = generate(p -> next,mid + 1,right); TreeNode *root = new TreeNode(p -> val); root -> left = tleft; root -> right = tright; return root; } TreeNode *sortedListToBST(ListNode *head) { int len = length(head); return generate(head,0,len - 1); } };
相关文章推荐
- [leetcode]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
- [Leetcode] 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
- leetcode 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
- LeetCode: 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
- leetcode 66: Convert Sorted List to Binary Search Tree
- LeetCode_Convert Sorted List to Binary Search Tree
- [LeetCode 109] - 将已排序链表转换为二叉搜索树 (Convert Sorted List to Binary Search Tree)
- [LeetCode] Convert Sorted List to Binary Search Tree