2021-02-04 14:41:57 +08:00
|
|
|
package com.code.leet.entiy;
|
|
|
|
|
2021-02-09 15:54:39 +08:00
|
|
|
|
2021-04-02 16:39:44 +08:00
|
|
|
import java.util.ArrayList;
|
2021-04-01 17:10:10 +08:00
|
|
|
import java.util.List;
|
|
|
|
|
2021-02-04 14:41:57 +08:00
|
|
|
/**
|
|
|
|
* @Author: hyy
|
|
|
|
* @Date: 2020-02-13 18:25
|
|
|
|
*/
|
|
|
|
public class TreeNode {
|
|
|
|
public TreeNode left;
|
2021-02-09 15:54:39 +08:00
|
|
|
public Integer val;
|
2021-02-04 14:41:57 +08:00
|
|
|
public TreeNode right;
|
2021-02-09 15:54:39 +08:00
|
|
|
|
|
|
|
TreeNode() {
|
|
|
|
}
|
|
|
|
|
|
|
|
public TreeNode(int val) {
|
|
|
|
this.val = val;
|
|
|
|
}
|
|
|
|
|
|
|
|
TreeNode(int val, TreeNode left, TreeNode right) {
|
|
|
|
this.val = val;
|
|
|
|
this.left = left;
|
|
|
|
this.right = right;
|
|
|
|
}
|
2021-04-01 17:10:10 +08:00
|
|
|
|
2021-04-02 16:39:44 +08:00
|
|
|
public TreeNode(List<Integer> list) {
|
|
|
|
if (list.size() == 0) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
List<TreeNode> treeNodeList = new ArrayList<>();
|
|
|
|
int index = 0;
|
2021-04-09 16:50:35 +08:00
|
|
|
int size = 0;
|
2021-04-02 16:39:44 +08:00
|
|
|
for (int i = 0; i < list.size(); i++) {
|
|
|
|
if (treeNodeList.size() == 0) {
|
|
|
|
this.val = list.get(i);
|
|
|
|
treeNodeList.add(this);
|
|
|
|
index = 0;
|
2021-04-09 16:50:35 +08:00
|
|
|
size = 1;
|
2021-04-02 16:39:44 +08:00
|
|
|
} else {
|
|
|
|
TreeNode root = treeNodeList.get(index);
|
|
|
|
treeNodeList.remove(index);
|
|
|
|
TreeNode left;
|
|
|
|
if (list.get(i) != null && root != null) {
|
|
|
|
left = new TreeNode(list.get(i));
|
|
|
|
root.left = left;
|
|
|
|
treeNodeList.add(index, left);
|
|
|
|
} else {
|
|
|
|
treeNodeList.add(index, null);
|
|
|
|
}
|
|
|
|
i++;
|
|
|
|
index++;
|
|
|
|
TreeNode right;
|
|
|
|
if (i < list.size()) {
|
|
|
|
if (list.get(i) != null && root != null) {
|
|
|
|
right = new TreeNode(list.get(i));
|
|
|
|
root.right = right;
|
|
|
|
treeNodeList.add(index, right);
|
2021-04-09 16:50:35 +08:00
|
|
|
} else {
|
2021-04-02 16:39:44 +08:00
|
|
|
treeNodeList.add(index, null);
|
|
|
|
}
|
|
|
|
index++;
|
|
|
|
}
|
2021-04-09 16:50:35 +08:00
|
|
|
if (treeNodeList.size() == size * 2) {
|
2021-04-02 16:39:44 +08:00
|
|
|
index = 0;
|
2021-04-09 16:50:35 +08:00
|
|
|
size = treeNodeList.size();
|
2021-04-02 16:39:44 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2021-04-01 17:10:10 +08:00
|
|
|
}
|
2021-02-04 14:41:57 +08:00
|
|
|
}
|