方便本地调试用,至少暂时不用买会员嘞
public TreeNode(String val) {
this.val = Integer.valueOf(val);
}
public static TreeNode toTreeNode(String s){
s= s.substring(1,s.length()-1);
if(s.length()==0)
return null;
String[] arr = s.split(",");
TreeNode root = new TreeNode(arr[0]);
Deque<TreeNode> que= new LinkedList();
que.offer(root);
int i=0;
while(!que.isEmpty()&& i<arr.length) {
TreeNode front = que.pop();
++i;
if(i<arr.length && !"null".equals(arr[i])) {
front.left = new TreeNode(arr[i]);
que.offer(front.left);
}
++i;
if(i<arr.length && !"null".equals(arr[i])) {
front.right = new TreeNode(arr[i]);
que.offer(front.right);
}
}
return root;
}
如果觉得上边的两个生成函数麻烦,那你直接用不带[ ]符号的数组好了,用下边这个
public static TreeNode toTreeNode(Integer[] arr){
if(arr.length==0)
return null;
TreeNode root = new TreeNode(arr[0]);
Deque<TreeNode> que = new LinkedList<>();
que.offer(root);
int i =0;
while(!que.isEmpty()&&i<arr.length){
TreeNode front = que.pop();
++i;
if(i<arr.length && arr[i]!=null) {
front.left = new TreeNode(arr[i]);
que.offer(front.left);
}
++i;
if(i<arr.length && arr[i]!=null){
front.right = new TreeNode(arr[i]);
que.offer(front.right);
}
}
return root;
}