java从根节点建立二叉树_java构建二叉树及先根,中根,后根遍历

把数组中存储的数据构建成二叉树。

根节点循环 for (int parentIndex = 0; parentIndex < array.length / 2 - 1; parentIndex++)

最有一个根节点即parentIndex =array.length / 2 - 1,最后单独处理,因为最后一个根节点可能没有有孩子,如果总数为奇数才有有孩子

java代码如下:

public void createBinTree() {

nodeList = new LinkedList();

// 将一个数组的值依次转换为Node节点

for (int nodeIndex = 0; nodeIndex 

nodeList.add(new Node(array[nodeIndex]));

}

// 对前lastParentIndex-1个父节点按照父节点与孩子节点的数字关系建立二叉树,最后一个根节点可能没有有孩子,如果

//parentIndex<= array.length / 2 - 1, 数组可能越界,只有奇数个节点才不会越界

for (int parentIndex = 0; parentIndex 

// 左孩子

nodeList.get(parentIndex).leftChild = nodeList

.get(parentIndex * 2 + 1);

// 右孩子

nodeList.get(parentIndex).rightChild = nodeList

.get(parentIndex * 2 + 2);

}

<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值