Leetcode:Convert Sorted List to Binary Search Tree
2015-08-11 10:01
495 查看
Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced
BST.
BST.
// LeetCode, Convert Sorted List to Binary Search Tree // bottom-up,时间复杂度O(n),空间复杂度O(logn) class Solution { public: TreeNode *sortedListToBST(ListNode *head) { int len = 0; ListNode *p = head; while (p) { len++; p = p->next; } return sortedListToBST(head, 0, len - 1); } private: TreeNode* sortedListToBST(ListNode*& list, int start, int end) { if (start > end) return nullptr; int mid = start + (end - start) / 2; TreeNode *leftChild = sortedListToBST(list, start, mid - 1); TreeNode *parent = new TreeNode(list->val); parent->left = leftChild; list = list->next; parent->right = sortedListToBST(list, mid + 1, end); return parent; } };
相关文章推荐
- LINQ体验(1)——Visual Studio 2008新特性
- 标准商业计划书大纲模版
- 状态模式
- spring多数据源的配置
- LA3699 - Harmony Forever
- 初学者
- 杭电1863畅通工程
- C语言程序设计进阶
- 还是畅通工程
- Redis安装及使用介绍
- POJ 1469:COURSES
- Python开发环境配置
- 李航老师统计学习常识
- Windows下安装Ubuntu双系统(硬盘安装)
- javascript 常见方法记录
- String
- PHP面向对象(OOP):.static和const关键字的使用(self::)
- POJ 1469:COURSES
- 省市区三级联动下拉框+数据绑定
- bash脚本之一:变量