diff --git a/src/test/java/com/ossez/lang/tutorial/tests/lintcode/LintCode0007SerializeAndDeserialize.java b/src/test/java/com/ossez/lang/tutorial/tests/lintcode/LintCode0007SerializeAndDeserialize.java deleted file mode 100644 index 7783e4254f..0000000000 --- a/src/test/java/com/ossez/lang/tutorial/tests/lintcode/LintCode0007SerializeAndDeserialize.java +++ /dev/null @@ -1,131 +0,0 @@ -package com.ossez.lang.tutorial.tests.lintcode; - -import java.util.ArrayList; - -import org.junit.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.ossez.lang.tutorial.models.TreeNode; - -/** - *

- * 7 - *

- *

- * - * @author YuCheng - * - */ -public class LintCode0007SerializeAndDeserialize { - - private final static Logger logger = LoggerFactory.getLogger(LintCode0007SerializeAndDeserialize.class); - - /** - * - */ - @Test - public void testMain() { - logger.debug("BEGIN"); - String data = "{3,9,20,#,#,15,7}"; - - System.out.println(serialize(deserialize(data))); - - } - - /** - * Deserialize from array to tree - * - * @param data - * @return - */ - private TreeNode deserialize(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; - - } - - /** - * - * @param root - * @return - */ - public String serialize(TreeNode root) { - // write your code here - if (root == null) { - return "{}"; - } - - ArrayList queue = new ArrayList(); - queue.add(root); - - for (int i = 0; i < queue.size(); i++) { - TreeNode node = queue.get(i); - if (node == null) { - continue; - } - queue.add(node.left); - queue.add(node.right); - } - - while (queue.get(queue.size() - 1) == null) { - queue.remove(queue.size() - 1); - } - - StringBuilder sb = new StringBuilder(); - sb.append("{"); - sb.append(queue.get(0).val); - for (int i = 1; i < queue.size(); i++) { - if (queue.get(i) == null) { - sb.append(",#"); - } else { - sb.append(","); - sb.append(queue.get(i).val); - } - } - sb.append("}"); - return sb.toString(); - } - -}