题目:

Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.

Example

               2
1->2->3 => / \
1 3

 

题解:

Solution 1 ()

class Solution {
public:
TreeNode *sortedListToBST(ListNode *head) {
if (!head) return nullptr; return sortedListToBST(head, nullptr);
}
TreeNode *sortedListToBST(ListNode* head, ListNode* tail) {
if (head == tail) return nullptr;
ListNode* mid = head, *tmp = head; while (tmp != tail && tmp->next != tail) {
mid = mid->next;
tmp = tmp->next->next;
}
TreeNode* root = new TreeNode(mid->val);
root->left = sortedListToBST(head, mid);
root->right = sortedListToBST(mid->next, tail); return root;
} };

Solution 2 ()

class Solution {
public:
TreeNode* sortedListToBST(ListNode* head) {
if (head == nullptr)
return nullptr;
ListNode* fast = head;
ListNode* slow = head;
ListNode* prev = nullptr;
while (fast != nullptr && fast->next != nullptr)
{
fast = fast->next->next;
prev =slow;
slow = slow->next;
}
TreeNode* root = new TreeNode(slow->val);
if (prev != nullptr)
prev->next = nullptr;
else
head = nullptr; root->left = sortedListToBST(head);
root->right = sortedListToBST(slow->next); return root;
} };

最新文章

  1. 转:解决npm install慢的问题
  2. Problems with MMM for mysql(译文)
  3. calender 软文
  4. 336-Palindrome Pairs
  5. jQuery使用经验建议
  6. phpstorm的调试工具xdebug
  7. 【dom4j】解析xml为map
  8. mybatis重拾---部署官方demo
  9. JavaScript之引用类型介绍
  10. nginx 提供静态内容
  11. 2016.10.08--Intel Code Challenge Final Round--D. Dense Subsequence
  12. 操作系统学习笔记----进程/线程模型----Coursera课程笔记
  13. 最强离线安装MySQL_8.0.2方法
  14. PKI(公钥基础设施)基础知识笔记
  15. HTML5发布的意义
  16. ES6的Map如何遍历
  17. Java web现在流行用什么框架?
  18. 详解管理root用户权限的sudo服务程序
  19. [LeetCode&Python] Problem 682. Baseball Game
  20. 简单说说SpringMVC

热门文章

  1. Spring学习十五----------Spring AOP API的Pointcut、advice及 ProxyFactoryBean相关内容
  2. ZooKeeper 系列(一)—— ZooKeeper核心概念详解
  3. java 获取微信 页面授权 获取用户openid
  4. Linux 进程状态 说明
  5. 关于打开sdk下载不了的最优秀解决方式
  6. jQuery中slideToggle()的详细使用方法和解释
  7. AWS:2.根设备类型、EC2生命周期状态、User Data
  8. 2.2链表 链表中倒数第k个结点
  9. 【zabbix】微信告警消息模版
  10. Java for LeetCode 105 Construct Binary Tree from Preorder and Inorder Traversal