【数据结构与算法】数组和单链表转平衡二叉树
2017-01-05 19:07
661 查看
题目108【1】升序数组转平衡二叉树
【思路】每次都找到数组中间的元素,作为跟节点,左半部分组成根节点的坐子树,右半部分组成根节点的右子树。采用递归的做法。
【代码】
题目109【2】升序单链表转平衡二叉树
【思路1】单链表的话,取中间的元素不容易,因此首先将单链表转化为数组,而后采用上述方法解决。
【代码1】
【思路2】
与数组思路相同,每次通过遍历,找到单链表的中间节点和最后的节点。方法时,在遍历单链表偶的过程中,保存三个指针,最终第一个指针指向中间节点的前一个节点,第二个指针指向中间节点,第三个指针指向最后的节点。同样采用递归的方法。
【代码2】
【思路】每次都找到数组中间的元素,作为跟节点,左半部分组成根节点的坐子树,右半部分组成根节点的右子树。采用递归的做法。
【代码】
题目109【2】升序单链表转平衡二叉树
【思路1】单链表的话,取中间的元素不容易,因此首先将单链表转化为数组,而后采用上述方法解决。
【代码1】
【思路2】
与数组思路相同,每次通过遍历,找到单链表的中间节点和最后的节点。方法时,在遍历单链表偶的过程中,保存三个指针,最终第一个指针指向中间节点的前一个节点,第二个指针指向中间节点,第三个指针指向最后的节点。同样采用递归的方法。
【代码2】
相关文章推荐
- 数据结构与算法学习笔记——链表部分实现(数组形式)
- 【数据结构与算法学习笔记】PART3 线性结构(除向量外,数组、栈、队列、链表)
- 【数据结构与算法基础】以数组实现的循环队列 / Circular Queue implemented by array
- 数据结构之链表基本操作算法演示
- 数据结构与算法——链表
- 数据结构与算法 2、单向/双向链表
- 算法学习之数据结构之双向链表
- 数据结构与算法之—数组(二)
- [数据结构算法学习] 单向链表
- 数据结构与算法之链表(三)单链表反转
- 数据结构——算法之(001)(在一个数组中找出重复数值)
- 【数据结构与算法基础】单链表及其应用基数排序 / Singly Linked List and radix sort
- 数据结构与算法之—数组(一)
- 数据结构之链表合并算法
- 数据结构与算法学习--链表
- 数据结构算法2.2 链表的合并
- 转:C#数据结构和算法学习系列十三----链表
- 数据结构之链表合并算法
- 数据结构之单链表取第i个元素的算法
- .net 数据结构与算法基础:泛型链表使用