Day-09 109. 有序链表转换二叉搜索树
109. 有序链表转换二叉搜索树
题目
1 |
|
题目思路
- 1、本题相当于将链表转化为一个二叉搜索树(Binary Search Tree : BST)
- 2、基于中序遍历恢复二叉搜索树,即可从任意节点出发,以节点左边的升序序列作为左子树,右边升序序列为右子树,即可得到二叉搜索树,本题要建立一个高度平衡的二叉搜索树,那么左右高度差至多为 1,故从链表的中点开始建立二叉搜索树最好。
- 3、本题也可以用 BFS 建树,DFS 填节点值,但这样空间复杂度较高,时间复杂度跟递归链表差不多的情况下,确实不是特别优秀的解法,不过也可以用来熟悉一下 DFS 与 BFS。
代码块。
1 |
|
复杂度
时间复杂度:O(log n)
空间复杂度:O(1)
Day-09 109. 有序链表转换二叉搜索树
https://chaggle.github.io/2021/09/18/Leetcode/91-day/day-09/