leet-code/LeetCode/src/main/java/com/code/leet/entiy/TreeNode.java

74 lines
2.0 KiB
Java
Raw Normal View History

2021-02-04 14:41:57 +08:00
package com.code.leet.entiy;
2021-04-02 16:39:44 +08:00
import java.util.ArrayList;
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;
public Integer val;
2021-02-04 14:41:57 +08:00
public TreeNode right;
2021-04-25 08:41:05 +08:00
public 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-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-02-04 14:41:57 +08:00
}