实现思路:
1、先用前面学到的方法将一个有序数组转换成二叉树
2、假设当前遍历的结点为root,root的左子树已经被转换为双向链表
* 使用两个变量pHead与pEnd分别指向链表的头结点与尾节点
* 在遍历root结点时只需要将root结点的lchild指向pEnd,把pEnd的rchild指向root,root进入链表成为新 的pEnd
代码实现:
public static BITNode arrayToTree(int[] arr,int start,int end){
BITNode root = null;
if(end >= start){
root = new BITNode();
int mid = (start + end + 1)/2;
//二叉树根节点为数组中间的元素
root.data = arr[mid];
//递归方法用左半部分数组构造root的左子树
root.lchild