loading

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);
    }
}
posted @ 2022-08-05 22:07  EaApple  阅读(898)  评论(0)    收藏  举报