力扣二叉树,根据leetcode的控制台输入快速在本地建树

使用说明

目的:为了刷二叉树题目时根据leetcode的控制台输入快速在本地建树
例子:leetocde

控制台输入: [3,9,20,null,null,15,7]
ide中java代码: 将数值复制到数组中,并将null用 Integer.MIN_VALUE代替

int[] nums = {3,9,20,Integer.MIN_VALUE,Integer.MIN_VALUE,15,7};
TreeNode root = builtTree(nums);

就可以直接返回二叉树根节点 root。

 public TreeNode builtTree(int[] nums) {
        TreeNode root = new TreeNode(nums[0]);

        LinkedList<TreeNode> list = new LinkedList<>();
        list.add(root);

        int index = 1;
        TreeNode node = root;

        while (index < nums.length) {
            node = list.pop();
            while (node == null) {
                node = list.pop();
            }

            if (nums[index] == Integer.MIN_VALUE) {
                node.left = null;
            } else {
                node.left = new TreeNode(nums[index]);
            }

            if (nums[index + 1] == Integer.MIN_VALUE) {
                node.right = null;
            } else {
                node.right = new TreeNode(nums[index + 1]);
            }
            list.add(node.left);
            list.add(node.right);
            index += 2;
        }

        return root;
    }

你可能感兴趣的:(leetcode,leetcode,java,算法)