使用说明
目的:为了刷二叉树题目时根据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;
}