题目:

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

解题思路:

注意是让构造平衡二叉搜索树。

每次将链表从中间断开,分成左右两部分。左边部分用来构造左子树,右边部分用来构造右子树。递归进行求解。

代码:

 1 /**
 2  * Definition for singly-linked list.
 3  * struct ListNode {
 4  *     int val;
 5  *     ListNode *next;
 6  *     ListNode(int x) : val(x), next(NULL) {}
 7  * };
 8  */
 9 /**
10  * Definition for binary tree
11  * struct TreeNode {
12  *     int val;
13  *     TreeNode *left;
14  *     TreeNode *right;
15  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
16  * };
17  */
18 class Solution {
19 public:
20     TreeNode *sortedListToBST(ListNode *head) {
21         if (head == NULL) return NULL;
22
23         ListNode *slow = head, *fast = head, *pre = NULL;
24         do {
25             fast = fast->next;
26             if (fast == NULL) break;
27             fast = fast->next;
28
29             pre = slow;
30             slow = slow->next;
31         } while (fast != NULL);
32
33         TreeNode * root = new TreeNode(slow->val);
34         if (pre != NULL) {
35             pre->next = NULL;
36             root->left = sortedListToBST(head);
37         }
38         else {
39             root->left = NULL;
40         }
41         TreeNode * right_root = sortedListToBST(slow->next);
42         root->right = right_root;
43         if (pre != NULL) pre->next = slow;
44         return root;
45     }
46 };

转载于:https://www.cnblogs.com/dongguangqing/p/3728160.html

LeetCode OJ - Convert Sorted List to Binary Search Tree相关推荐

  1. LeetCode: 109. Convert Sorted List to Binary Search Tree

    题目 Given a singly linked list where elements are sorted in ascending order, convert it to a height b ...

  2. 【链表递归构造二叉树】LeetCode 109. Convert Sorted List to Binary Search Tree

    LeetCode 109. Convert Sorted List to Binary Search Tree Solution1:我的答案 偷鸡摸狗的做法 /*** Definition for s ...

  3. 【数组递归构造二叉树】LeetCode 108. Convert Sorted Array to Binary Search Tree

    LeetCode 108. Convert Sorted Array to Binary Search Tree Solution1:我的答案 构造二叉树利用递归 /*** Definition fo ...

  4. leetcode -day19 Convert Sorted List to Binary Search Tree

    1.  Convert Sorted List to Binary Search Tree Given a singly linked list where elements are sorted ...

  5. LeetCode: 108. Convert Sorted Array to Binary Search Tree

    题目 Given an array where elements are sorted in ascending order, convert it to a height balanced BST. ...

  6. LeetCode 108. Convert Sorted Array to Binary Search Tree

    题目: Given an array where elements are sorted in ascending order, convert it to a height balanced BST ...

  7. leetcode 108. Convert Sorted Array to Binary Search Tree | 108. 将有序数组转换为二叉搜索树(Java)

    题目 https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/ 题解 经典二分,不解释了,直接看代码 /*** ...

  8. LeetCode 109. Convert Sorted List to Binary Search Tree

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

  9. Convert Sorted Array to Binary Search Tree - LeetCode

    目录 题目链接 注意点 解法 小结 题目链接 Convert Sorted Array to Binary Search Tree - LeetCode 注意点 不要访问空结点 题目要求的是平衡二叉搜 ...

最新文章

  1. numa节点_漫步云端NUMA调度
  2. 关于fmincon和cvx
  3. docker环境安装,镜像和容器常用命令
  4. 容器底层实现技术Namespace/Cgroup
  5. iPhone软件开发新突破,真正VoIP通话
  6. 网站集成支付宝接口安装教程
  7. 华为杯数学建模2020什么时候出结果_关于东北三省数学建模联赛及“华为杯”研究生数学建模竞赛的通知...
  8. html2canvas在iphone7 iphonex都生成不了
  9. python 字典 列表 元祖_Python基础之列表、元祖、字典、集合,你都知道吗?附视频...
  10. android.jar 重新编译,android的framework.jar反编译,并重新编译
  11. 创翼linux版本,创翼电信客户端for Mac-创翼客户端Mac版下载 V1.3.7-PC6苹果网
  12. python 华泰股票交易接口_TradeApi 自带资金管理的A股程序化交易接口
  13. 全国计算机演示文稿,全国计算机统考押题——演示文稿
  14. Python数据分析第七课:时间序列数据的处理
  15. Ubuntu下重力方向调节
  16. 使用AJAX的10个商业动机 {转}
  17. 脑机接口005 | “中国脑计划”:向最后的前沿进发!
  18. 《我和这个世界不熟》——北岛
  19. 艺术家已经失业,下一个会是谁?
  20. rem介绍、vw、vh实现等比例缩放

热门文章

  1. PHP 过滤器(Filter)
  2. 单片机小白学步系列(十五) 单片机程序下载失败总结
  3. dibian+9+oracle+java_debian – 安装了Oracle Java,但在安装软件时,我得到了`你的Java版本不受支持....
  4. linux 内核主线,为AM335x移植Linux内核主线代码(41)Ethernet结论篇
  5. mysql各种联结的区别_mysql几种连接方式区别
  6. en55032最新标准下载_大型设备塔吊安装维保、安全检查及案例,94页PPT下载!
  7. 《Neural Networks for Machine Learning》学习二
  8. js控制a标签点击事件 触发下载
  9. window.onload和$(document).ready(function(){})的区别
  10. depends用于测试程序运行所缺少的文件,可以帮我们很快找到问题