package com.jiawei.Utils;
import java.util.LinkedList;
public class TreeNode {
public int val;
public TreeNode left;
public TreeNode right;
public TreeNode() {}
public TreeNode(int val) {
this.val = val;
}
public TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;
}
public Integer getVal() {
return val;
}
public void setVal(int val) {
this.val = val;
}
public TreeNode getleft() {
return left;
}
public void setleft(TreeNode left) {
this.left = left;
}
public TreeNode getright() {
return right;
}
public void setright(TreeNode right) {
this.right = right;
}
public static TreeNode creatTree(Integer[] arr) {
TreeNode root = new TreeNode(arr[0]); // 根节点
TreeNode current = null;
Integer value = null;
// 层序创建二叉树
LinkedList<TreeNode> queue = new LinkedList<TreeNode>();
queue.offer(root);
int i = 1;
while (i < arr.length) {
current = (TreeNode) queue.poll();// 从链表中移除并获取第一个节点
value = arr[i++];
if (value != null) {
TreeNode left = new TreeNode(value);
current.setleft(left);// 创建当前节点的左孩子
queue.offer(left); // 在链表尾部 左孩子入队
}
value = arr[i++];
if (value != null) {
TreeNode right = new TreeNode(value);
current.setright(right);// 创建当前节点的右孩子
queue.offer(right);// 在链表尾部 右孩子入队
}
}
return root;
}
}
09-01
1244
07-14
221
07-14
342
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交