方便本地调试用,至少暂时不用买会员嘞
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;
}
文章提供了两种方法创建TreeNode对象,一种是从带括号的字符串中解析,另一种是直接使用Integer数组。这两种函数用于构建树结构,方便本地调试,避免购买会员服务。代码通过队列进行层次遍历,构建二叉树的左右子节点。
440

被折叠的 条评论
为什么被折叠?



