树节点定义
package com.butupi.tree;
import org.junit.jupiter.api.Test;
public class TreeNode<T> {
public T data;
public TreeNode<?> left;
public TreeNode<?> right;
TreeNode() {
}
TreeNode(T data) {
this.data = data;
}
/**
* 数组转换为树
*
* @description:
* @date:2022年4月29日
* @param arr
*/
public static TreeNode createTreeFromArray(Integer[] arr,int index) {
TreeNode tn = null;
if(index <arr.length) {
Integer data = arr[index];
if (data == null) {
return null;
}
tn = new TreeNode(data);
tn.left = createTreeFromArray(arr, 2*index+1);
tn.right = createTreeFromArray(arr, 2*index+2);
return tn;
}
return tn;
}
}
递归遍历
package com.butupi.tree;
/**
* 递归遍历树
* @description:
* @author:1252319301
* @version:
* @date: 2022年4月27日
*/
public class TraversalRecursi