LeetCode--convert-sorted-list-to-binary-search-tree
2017-12-31 18:27
225 查看
题目描述
Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.分析:将有序链表转换成二叉搜索树,和之前那道Convert Sorted Array to Binary Search Tree思路完全一样,只不过是操作的数据类型有所差别,一个是数组,一个是链表。数组方便就方便在可以通过index直接访问任意一个元素,而链表不行。由于二分查找法每次需要找到中点,而链表的查找中间点可以通过快慢指针来操作。找到中点后,要以中点的值建立一个数的根节点,然后需要把原链表断开,分为前后两个链表,都不能包含原中节点,然后再分别对这两个链表递归调用原函数,分别连上左右子节点即可。
/** * 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 *sortedListToBST(ListNode *head) { return BST(head,NULL); } TreeNode *BST(ListNode *head,ListNode *tail) { if(head == tail) return NULL; ListNode *s = head; ListNode *f = head; while(f!=tail && f->next!=tail) { s = s->next; f = f->next->next; } TreeNode *root = new TreeNode(s->val); root->left = BST(head,s); root->right = BST(s->next,tail); return root; } };
相关文章推荐
- LeetCode : Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree -- LeetCode
- 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
- LeetCodeConvert Sorted List to Binary Search Tree
- leetcode - Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree (递增的链表转化成高度平衡的二叉查找树)【leetcode】
- LeetCode: Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree -- leetcodeGiven a singly linked list where elements are s
- leetcode109~Convert Sorted List to Binary Search Tree
- LeetCode刷题(C++)——Convert Sorted List to Binary Search Tree(Normal)
- LeetCode109 Convert Sorted List to Binary Search Tree
- LeetCode: Convert Sorted Array to Binary Search Tree && Convert Sorted List to Binary Search Tree
- 【Leetcode】Two Problems: Convert Sorted Array/List to Binary Search Tree
- [LeetCode] Convert Sorted List to Binary Search Tree, Solution
- 5 Convert Sorted List to Binary Search Tree_Leetcode
- LeetCode:Convert Sorted Array(List) to Binary Search Tree
- leetcode-109 Convert Sorted List to Binary Search Tree