diff --git a/LeetCode/src/main/java/com/code/leet/entiy/TreeNode.java b/LeetCode/src/main/java/com/code/leet/entiy/TreeNode.java index 72606f2..edaf30a 100644 --- a/LeetCode/src/main/java/com/code/leet/entiy/TreeNode.java +++ b/LeetCode/src/main/java/com/code/leet/entiy/TreeNode.java @@ -1,6 +1,7 @@ package com.code.leet.entiy; +import java.util.ArrayList; import java.util.List; /** @@ -25,7 +26,45 @@ public class TreeNode { this.right = right; } - public TreeNode(List list){ - + public TreeNode(List list) { + if (list.size() == 0) { + return; + } + List treeNodeList = new ArrayList<>(); + int index = 0; + for (int i = 0; i < list.size(); i++) { + if (treeNodeList.size() == 0) { + this.val = list.get(i); + treeNodeList.add(this); + index = 0; + } 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); + }else{ + treeNodeList.add(index, null); + } + index++; + } + if (index == treeNodeList.size()*2) { + index = 0; + } + } + } } }