leetcode笔记:Convert Sorted List to Binary Search Tree
来源:互联网 发布:启用视频网络 编辑:程序博客网 时间:2024/06/05 05:03
一. 题目描述
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一样的方法来进行,这种方法的时间复杂度为O(n)
,空间复杂度为O(n^2)
。
三. 示例代码
#include <iostream>#include <vector>using std::vector;struct ListNode{ int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};struct TreeNode{ int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}};class Solution{private: TreeNode* sortedArrayToBST(vector<int>::iterator Begin, vector<int>::iterator End) { if (Begin == End) { return NULL; } vector<int>::iterator HeadIte = Begin + (End - Begin) / 2; TreeNode *Head = new TreeNode(*HeadIte); TreeNode *LeftChild = sortedArrayToBST(Begin, HeadIte); TreeNode *RightChild = sortedArrayToBST(HeadIte + 1, End); Head->left = LeftChild; Head->right = RightChild; return Head; }public: TreeNode* sortedListToBST(ListNode* head) { vector<int> Nums; for (ListNode *TmpHead = head; TmpHead; TmpHead = TmpHead->next) { Nums.push_back(TmpHead->val); } return sortedArrayToBST(Nums.begin(), Nums.end()); }};
四. 小结
以上所使用方法比较简单,但还有可提升的空间。
4 0
- leetcode笔记:Convert Sorted List to Binary Search Tree
- 【LeetCode】Convert Sorted Array to Binary Search Tree && Convert Sorted List to Binary Search Tree
- LeetCode[Tree]: Convert Sorted List to Binary Search Tree
- [leetcode][list][dfs] 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 Balanced 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 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
- 字符串(1)
- Leetcode-10.Regular Expression Matching
- WIN10系统刷联想A3000H(MT65XX系统)
- 英语听力达人训练营
- 关于fflush(stdin)清空输入缓存流(C/C++)
- leetcode笔记:Convert Sorted List to Binary Search Tree
- 关于在国内使用maven的一些设置
- 关于ios 读书笔记
- ios 技巧2- 读书笔记
- AFNetwork 作用和用法详解
- Win10+VS2015折腾小记
- 设计模式系列14---管流程不管细节的模板方法模式
- IOS学习日志(Controller)1.7
- 收藏的链接