Convert Sorted List to Binary Search Tree
来源:互联网 发布:php 微商城平台版源码 编辑:程序博客网 时间:2024/06/03 18:20
Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.
时间复杂度O(n log(n))
/** * 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: /*convert [head,tail)*/ TreeNode *sortedListToBST(ListNode *head, ListNode *tail){ if(head==tail) return NULL; if(head->next==tail){ TreeNode *res = new TreeNode(head->val); delete head; return res; } if(head->next->next==tail){ TreeNode* res = new TreeNode(head->next->val); TreeNode* left = new TreeNode(head->val); res->left = left; res->right = NULL; delete head->next; delete head; return res; } ListNode *fast = head, *slow = head; while(fast!=tail && fast->next!=tail){ fast = fast->next->next; slow = slow->next; } TreeNode *res = new TreeNode(slow->val); TreeNode *left = sortedListToBST(head,slow); TreeNode *right = sortedListToBST(slow->next,tail); delete slow; res->left = left; res->right = right; return res; } TreeNode *sortedListToBST(ListNode *head) { return sortedListToBST(head,NULL); }};
0 0
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- convert sorted list to binary search tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- android多线程
- Java中各种打印形状
- 虚幻4制作小地图
- VC MFC 打开文件夹的实现
- servlet filter和springMVC拦截器的区别
- Convert Sorted List to Binary Search Tree
- 虚拟机下linux配置yum
- Runnable可以实现资源共享但Thread不能实现资源共享?不,Thread能!
- Java学习连载001
- WinInet编程中如何使用异步
- PyQt5按钮(Button)
- Spring 国际化
- ZOJ 3870 Team Formation(位运算)
- mysql常用命令