109-Convert Sorted List to Binary Search Tree
来源:互联网 发布:网络购物平台图片大全 编辑:程序博客网 时间:2024/06/05 09:36
题目
Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.
分析
这个和Covert Sorted Array to Binary Search Tree 其实是类似的,都是通过递归构造
关键就在于如何找到链表的中间结点。
链表的中间结点可以用快慢指针来实现。
处理的时候要比较细心,有三种情况
1. 头尾指针指向同一个结点
2. 头尾指针指向相邻结点
3. 头尾指针中间间隔的结点>= 2个
实现
class Solution {public: //109. Convert Sorted List to Binary Search Tree TreeNode* sortedListToBST(ListNode* head) { if (!head) return NULL; return sortedListToBSTHelper(head, NULL); } TreeNode* sortedListToBSTHelper(ListNode* start, ListNode* end) { //指向同一个结点 if (start == end) return NULL; //指向相邻结点 if (start->next == end) { TreeNode *root = new TreeNode(start->val); return root; } ListNode *slow = start, *fast = start; //指向不相邻结点 while (fast->next != end&&fast->next->next != end) { fast = fast->next->next; slow = slow->next; } TreeNode * root = new TreeNode(slow->val); root->left = sortedListToBSTHelper(start, slow); root->right = sortedListToBSTHelper(slow->next, end); return root; }};
阅读全文
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
- 读书笔记-人月神话6
- JS中2个感叹号的作用
- PHP常见9大缓存
- Satisfactory Pairs
- 对象引用计数器
- 109-Convert Sorted List to Binary Search Tree
- 使用模块定义文件(.def)文件生成dll
- MySQL最新解压缩版安装[5.7.18]
- 111- Minimum Depth of Binary Tree
- IIC协议
- 跳转到系统设置页面
- 112- Path Sum
- 114- Flatten Binary Tree to Linked List
- K-近邻算法(一)