Leetcode上面的二叉树问题,输入都是一个数组,可以调用该方法生成二叉树,用于本地调试(通过队列实现)。注意该方法传参是一个Integer数组,不能为int数组,因为int数组不能包括null值。
class TreeNode {
int val;
TreeNode(int val) {
this.val = val;
}
TreeNode right;
TreeNode left;
public static TreeNode getTreeNode(Integer[] nums) {
if (nums.length == 0) {
return null;
}
TreeNode head = new TreeNode(nums[0]);
LinkedList<TreeNode> subTree = new LinkedList<>();
subTree.push(head);
for (int i = 1; i < nums.length; i++) {
if (!subTree.isEmpty()) {
TreeNode cur = subTree.pop();
if (nums[i] != null) {
cur.left = new TreeNode(nums[i]);
subTree.add(cur.left);
}
i++;
if (i >= nums.length) {
break;
}
if (nums[i] != null) {
cur.right = new TreeNode(nums[i]);
subTree.add(cur.right);
}
} else {
break;
}
}
return head;
}
}