Convert Sorted List to Binary Search Tree
2015-03-24 00:49
127 查看
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: TreeNode* createNode(ListNode *head, int len) { if (head == NULL || len < 1) { return NULL; } if (len == 1) { return new TreeNode(head->val); } ListNode *p = head; int steps = len/2 - 1; int leftLen = steps + 1; int rightLen = len - leftLen - 1; while (steps) { steps--; p = p->next; } TreeNode *result = new TreeNode(p->next->val); ListNode *temp = p->next->next; p->next = NULL; result->left = createNode(head, leftLen); result->right = createNode(temp, rightLen); return result; } TreeNode *sortedListToBST(ListNode *head) { if (head == NULL) { return NULL; } int len = 0; ListNode *p = head; while (p) { len++; p = p->next; } return createNode(head, len); } };
相关文章推荐
- LeetCode: Convert Sorted List to Binary Search Tree
- [LeetCode] Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- 【ATT】Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- 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 66: 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, Solution
- [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
- Convert Sorted Array(List) to Binary Search Tree
- Leetcode: Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree