摘要: 问题给出一个元素以递增序列排序的单链表,将其转换为一棵高度平衡的二叉搜索树。初始思路二叉搜索树高度平衡,意味着左右子树的高度要平衡。根据二叉树左子树节点小于根节点,右子树节点大于根节点的性质:我们在待选节点中选择值为中位数的节点作为根节点,所有小于中位数的节点作为左子树,所有大于中位数的节点作为右子树,即可满足高度平衡的要求。由于题目给出的已经是排好序的单链表,我们只要每次选择中间的节点即可。然后通过递归处理左右子树,最终完成高度平衡二叉搜索树的构建。最终完成代码如下: 1 class Solution { 2 enum ChildType 3 { 4 ... 阅读全文
posted @ 2013-08-23 00:19 Shawnone 阅读(535) 评论(0) 推荐(0) 编辑