From 96ea15ef65851edfcfbaf10a1b1383d5fc0673f4 Mon Sep 17 00:00:00 2001 From: YuCheng Hu Date: Wed, 26 Dec 2018 17:37:38 -0500 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8C=85=E7=9A=84=E5=90=8D?= =?UTF-8?q?=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../codebank/algorithml/utils/TreeUtils.java | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/main/java/com/ossez/codebank/algorithml/utils/TreeUtils.java diff --git a/src/main/java/com/ossez/codebank/algorithml/utils/TreeUtils.java b/src/main/java/com/ossez/codebank/algorithml/utils/TreeUtils.java new file mode 100644 index 0000000000..aafa847383 --- /dev/null +++ b/src/main/java/com/ossez/codebank/algorithml/utils/TreeUtils.java @@ -0,0 +1,55 @@ +package com.ossez.codebank.algorithml.utils; + +import java.util.ArrayList; + +import com.ossez.codebank.algorithm.models.TreeNode; + +/** + * + * @author YuCheng + * + */ +public class TreeUtils { + + public static TreeNode initTree(String data) { + // NULL CHECK + if (data.equals("{}")) { + return null; + } + + ArrayList treeList = new ArrayList(); + + data = data.replace("{", ""); + data = data.replace("}", ""); + String[] vals = data.split(","); + + // INSERT ROOT + TreeNode root = new TreeNode(Integer.parseInt(vals[0])); + treeList.add(root); + + int index = 0; + boolean isLeftChild = true; + for (int i = 1; i < vals.length; i++) { + if (!vals[i].equals("#")) { + TreeNode node = new TreeNode(Integer.parseInt(vals[i])); + if (isLeftChild) { + treeList.get(index).left = node; + } else { + treeList.get(index).right = node; + } + treeList.add(node); + } + + // LEVEL + if (!isLeftChild) { + index++; + } + + // MOVE TO RIGHT OR NEXT LEVEL + isLeftChild = !isLeftChild; + } + + return root; + + } +}