java 数组创建二叉树
输入为java数组,采用先序遍历得到一个二叉树
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode() {
}
TreeNode(int val) {
this.val = val;
}
TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;
}
}
/**
* @description: 主类
* @author: ShaoYJ
* @date: 2022/8/5 19:58
*/
public class Q623 {
static int counter = 0;
public TreeNode createTreeNode(TreeNode root, int[] nums, int index) {
if (index < nums.length) {
if (nums[index] == 0) {
return null;
} else {
root.val = nums[index];
TreeNode left = new TreeNode();
root.left = createTreeNode(left, nums, ++counter);
TreeNode right = new TreeNode();
root.right = createTreeNode(right, nums, ++counter);
return root;
}
}
return root;
}
// public TreeNode addOneRow(TreeNode root, int val, int depth) {
//
// return null;
// }
public static void main(String[] args) {
Q623 q623 = new Q623();
int[] nums = new int[]{1, 2, 4, 0, 0, 0, 3, 0, 0};
TreeNode root = q623.createTreeNode(new TreeNode(), nums, 0);
System.out.println(root);
System.out.println(counter);
}
}
等我先恰个🍎

浙公网安备 33010602011771号