给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。
本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。
示例:
1 | 给定的有序链表: [-10, -3, 0, 5, 9], |
解决方案
方法一:直接构造AVL树
- 思路:遍历链表中的每一个节点,将其插入到AVL树中。
1 | /* |
方法二:快慢指针+递归
- 思路:通过快慢指针,寻找中间节点。以此节点为界,将链表一分为二。然后对这两个部分递归执行该过程。
1 | /* |
给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。
本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。
示例:
1 | 给定的有序链表: [-10, -3, 0, 5, 9], |
1 | /* |
1 | /* |
微信支付
支付宝