算法第九周解题报告
来源:互联网 发布:linux init3 编辑:程序博客网 时间:2024/06/06 12:59
Convert Sorted List to Binary Search Tree
问题描述:
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 a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: TreeNode* sortedListToBST(ListNode* head) { vector<int> nums(0); ListNode *p = head; while(p != NULL){ nums.push_back(p -> val); p = p -> next; } TreeNode* root = NULL; BSTreeCons(nums, 0, nums.size() - 1, root); return root; } void BSTreeCons(vector<int>& nums, int begin, int end, TreeNode*& root){ if(begin > end) return; int mid = (begin + end) / 2; root = new TreeNode(nums[mid]); BSTreeCons(nums, begin, mid - 1, root -> left); BSTreeCons(nums, mid + 1, end, root -> right); }};
结果:
0 0
- 算法第九周解题报告
- 算法第二周解题报告
- 算法第三周解题报告
- 算法第五周解题报告
- 算法第八周解题报告
- 算法第十五周解题报告
- 算法十七周解题报告
- C2第九次解题报告
- [解题报告]KMP算法
- 第九周实验报告
- 第九周 报告2:
- 第九周实验报告
- 【算法解题报告】求众数
- LRU算法&&LeetCode解题报告
- 算法第十四周解题报告
- 第九周期末(中)考试解题报告
- 第九届蓝桥杯选拔赛C语言组 解题报告索引
- 周赛解题报告
- AdMob常见问题
- 【C#】遍历各类数据集合的方法
- 河南工业大学2017“玲珑杯”程序设计竞赛 07
- weblogic的一些使用
- leetCode刷题归纳-List(25. Reverse Nodes in k-Group)
- 算法第九周解题报告
- 我的Android NDK之旅(三),使用cmake来构建Jni
- logstash5.x 配置beats 后 telnet连接一次后中断。
- Leetcode-标签为Tree 101. Symmetric Tree
- mysql数据库-----从一个表中复制数据和结构到另一个表中
- JSON对象的转换
- ARM汇编基础
- hihoCoder
- JavaScript闭包究竟是什么