[LeetCode OJ]-Convert Sorted List to Binary Search Tree

题目要求:根据一个已升序排序的链表构造出一颗平衡的二叉树。

思路:最初我的想法是把这个链表放到一个数组中,再用数组构造平衡二叉树的方法还原出来。但是则样做内存超过题目要求了,只能用别的办法。

看到网上有人用中序的思路求解,觉得是个不错的办法,学习了一下。

中序遍历的顺序是先左再根再右,如果这是一颗已排序的二叉树,那么中序遍历这棵二叉树得到的序列就是升序的序列,反过来思考,给定一个升序的序列的链表,如果我们按照中序遍历的思想,也能还原出这颗二叉树。

代码如下。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 序 2016年6月25日夜,帝都,天下着大雨,拖着行李箱和同学在校门口照了最后一张合照,搬离寝室打车去了提前租...
    RichardJieChen阅读 10,614评论 0 12
  • 原题 给出一个所有元素以升序排序的单链表,将它转换成一棵高度平衡的二分查找树 解题思路 跟二叉树相关 - 分治法,...
    Jason_Yuan阅读 3,788评论 0 0
  • 第一章 绪论 什么是数据结构? 数据结构的定义:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 第二章...
    SeanCheney阅读 11,090评论 0 19
  • 树的概述 树是一种非常常用的数据结构,树与前面介绍的线性表,栈,队列等线性结构不同,树是一种非线性结构 1.树的定...
    Jack921阅读 9,938评论 1 31
  • LeetCode 刷题随手记 - 第一部分 前 256 题(非会员),仅算法题,的吐槽 https://leetc...
    蕾娜漢默阅读 18,132评论 2 36