diff --git a/src/class06/Test.java b/src/class06/Test.java deleted file mode 100644 index f833821..0000000 --- a/src/class06/Test.java +++ /dev/null @@ -1,5 +0,0 @@ -package class06; - -public class Test { - -} diff --git a/src/class06/Code01_LinkedListMid.java b/src/class06_09/Code01_LinkedListMid.java similarity index 99% rename from src/class06/Code01_LinkedListMid.java rename to src/class06_09/Code01_LinkedListMid.java index 04cc571..c406ae5 100644 --- a/src/class06/Code01_LinkedListMid.java +++ b/src/class06_09/Code01_LinkedListMid.java @@ -1,4 +1,4 @@ -package class06; +package class06_09; import java.util.ArrayList; diff --git a/src/class06/Code02_IsPalindromeList.java b/src/class06_09/Code02_IsPalindromeList.java similarity index 99% rename from src/class06/Code02_IsPalindromeList.java rename to src/class06_09/Code02_IsPalindromeList.java index 090409d..75353bd 100644 --- a/src/class06/Code02_IsPalindromeList.java +++ b/src/class06_09/Code02_IsPalindromeList.java @@ -1,4 +1,4 @@ -package class06; +package class06_09; import java.util.Stack; diff --git a/src/class06/Code03_SmallerEqualBigger.java b/src/class06_09/Code03_SmallerEqualBigger.java similarity index 99% rename from src/class06/Code03_SmallerEqualBigger.java rename to src/class06_09/Code03_SmallerEqualBigger.java index a5718ed..6ec2d96 100644 --- a/src/class06/Code03_SmallerEqualBigger.java +++ b/src/class06_09/Code03_SmallerEqualBigger.java @@ -1,4 +1,4 @@ -package class06; +package class06_09; public class Code03_SmallerEqualBigger { diff --git a/src/class06/Code04_CopyListWithRandom.java b/src/class06_09/Code04_CopyListWithRandom.java similarity index 99% rename from src/class06/Code04_CopyListWithRandom.java rename to src/class06_09/Code04_CopyListWithRandom.java index 0a0a836..7ae03d7 100644 --- a/src/class06/Code04_CopyListWithRandom.java +++ b/src/class06_09/Code04_CopyListWithRandom.java @@ -1,4 +1,4 @@ -package class06; +package class06_09; import java.util.HashMap; diff --git a/src/class06/Code05_FindFirstIntersectNode.java b/src/class06_10/Code01_FindFirstIntersectNode.java similarity index 98% rename from src/class06/Code05_FindFirstIntersectNode.java rename to src/class06_10/Code01_FindFirstIntersectNode.java index bc27bbb..473b4f8 100644 --- a/src/class06/Code05_FindFirstIntersectNode.java +++ b/src/class06_10/Code01_FindFirstIntersectNode.java @@ -1,6 +1,6 @@ -package class06; +package class06_10; -public class Code05_FindFirstIntersectNode { +public class Code01_FindFirstIntersectNode { public static class Node { public int value; diff --git a/src/class07/Code08_PaperFolding.java b/src/class07/Code08_PaperFolding.java deleted file mode 100644 index 230b47d..0000000 --- a/src/class07/Code08_PaperFolding.java +++ /dev/null @@ -1,24 +0,0 @@ -package class07; - -public class Code08_PaperFolding { - - public static void printAllFolds(int N) { - printProcess(1, N, true); - } - - // 递归过程,来到了某一个节点, - // i是节点的层数,N一共的层数,down == true 凹 down == false 凸 - public static void printProcess(int i, int N, boolean down) { - if (i > N) { - return; - } - printProcess(i + 1, N, true); - System.out.println(down ? "凹 " : "凸 "); - printProcess(i + 1, N, false); - } - - public static void main(String[] args) { - int N = 3; - printAllFolds(N); - } -} diff --git a/src/class07/Code01_RecursiveTraversalBT.java b/src/class07_10/Code01_RecursiveTraversalBT.java similarity index 98% rename from src/class07/Code01_RecursiveTraversalBT.java rename to src/class07_10/Code01_RecursiveTraversalBT.java index 56e9bec..5027b7f 100644 --- a/src/class07/Code01_RecursiveTraversalBT.java +++ b/src/class07_10/Code01_RecursiveTraversalBT.java @@ -1,4 +1,4 @@ -package class07; +package class07_10; public class Code01_RecursiveTraversalBT { diff --git a/src/class07/Code02_UnRecursiveTraversalBT.java b/src/class07_10/Code02_UnRecursiveTraversalBT.java similarity index 99% rename from src/class07/Code02_UnRecursiveTraversalBT.java rename to src/class07_10/Code02_UnRecursiveTraversalBT.java index 277e96b..4b4e857 100644 --- a/src/class07/Code02_UnRecursiveTraversalBT.java +++ b/src/class07_10/Code02_UnRecursiveTraversalBT.java @@ -1,4 +1,4 @@ -package class07; +package class07_10; import java.util.Stack; diff --git a/src/class07/Code03_LevelTraversalBT.java b/src/class07_11/Code01_LevelTraversalBT.java similarity index 93% rename from src/class07/Code03_LevelTraversalBT.java rename to src/class07_11/Code01_LevelTraversalBT.java index 34bd6b9..2a377c3 100644 --- a/src/class07/Code03_LevelTraversalBT.java +++ b/src/class07_11/Code01_LevelTraversalBT.java @@ -1,9 +1,9 @@ -package class07; +package class07_11; import java.util.LinkedList; import java.util.Queue; -public class Code03_LevelTraversalBT { +public class Code01_LevelTraversalBT { public static class Node { public int value; diff --git a/src/class07/Code04_SerializeAndReconstructTree.java b/src/class07_11/Code02_SerializeAndReconstructTree.java similarity index 98% rename from src/class07/Code04_SerializeAndReconstructTree.java rename to src/class07_11/Code02_SerializeAndReconstructTree.java index fecd6ac..af5e5de 100644 --- a/src/class07/Code04_SerializeAndReconstructTree.java +++ b/src/class07_11/Code02_SerializeAndReconstructTree.java @@ -1,10 +1,10 @@ -package class07; +package class07_11; import java.util.LinkedList; import java.util.Queue; import java.util.Stack; -public class Code04_SerializeAndReconstructTree { +public class Code02_SerializeAndReconstructTree { /* * 二叉树可以通过先序、后序或者按层遍历的方式序列化和反序列化, * 以下代码全部实现了。 @@ -129,7 +129,7 @@ public class Code04_SerializeAndReconstructTree { Queue queue = new LinkedList(); queue.add(head); while (!queue.isEmpty()) { - head = queue.poll(); + head = queue.poll(); // head 父 子 if (head.left != null) { ans.add(String.valueOf(head.left.value)); queue.add(head.left); diff --git a/src/class07_11/Code03_EncodeNaryTreeToBinaryTree.java b/src/class07_11/Code03_EncodeNaryTreeToBinaryTree.java new file mode 100644 index 0000000..67aa777 --- /dev/null +++ b/src/class07_11/Code03_EncodeNaryTreeToBinaryTree.java @@ -0,0 +1,86 @@ +package class07_11; + +import java.util.ArrayList; +import java.util.List; + +// 本题测试链接:https://leetcode.com/problems/encode-n-ary-tree-to-binary-tree +public class Code03_EncodeNaryTreeToBinaryTree { + + // 提交时不要提交这个类 + public static class Node { + public int val; + public List children; + + public Node() { + } + + public Node(int _val) { + val = _val; + } + + public Node(int _val, List _children) { + val = _val; + children = _children; + } + }; + + // 提交时不要提交这个类 + public static class TreeNode { + int val; + TreeNode left; + TreeNode right; + + TreeNode(int x) { + val = x; + } + } + + // 只提交这个类即可 + class Codec { + // Encodes an n-ary tree to a binary tree. + public TreeNode encode(Node root) { + if (root == null) { + return null; + } + TreeNode head = new TreeNode(root.val); + head.left = en(root.children); + return head; + } + + private TreeNode en(List children) { + TreeNode head = null; + TreeNode cur = null; + for (Node child : children) { + TreeNode tNode = new TreeNode(child.val); + if (head == null) { + head = tNode; + } else { + cur.right = tNode; + } + cur = tNode; + cur.left = en(child.children); + } + return head; + } + + // Decodes your binary tree to an n-ary tree. + public Node decode(TreeNode root) { + if (root == null) { + return null; + } + return new Node(root.val, de(root.left)); + } + + public List de(TreeNode root) { + List children = new ArrayList<>(); + while (root != null) { + Node cur = new Node(root.val, de(root.left)); + children.add(cur); + root = root.right; + } + return children; + } + + } + +} diff --git a/src/class07/Code05_PrintBinaryTree.java b/src/class07_11/Code04_PrintBinaryTree.java similarity index 96% rename from src/class07/Code05_PrintBinaryTree.java rename to src/class07_11/Code04_PrintBinaryTree.java index 57adbca..64aeb7e 100644 --- a/src/class07/Code05_PrintBinaryTree.java +++ b/src/class07_11/Code04_PrintBinaryTree.java @@ -1,6 +1,6 @@ -package class07; +package class07_11; -public class Code05_PrintBinaryTree { +public class Code04_PrintBinaryTree { public static class Node { public int value; diff --git a/src/class07/Code06_TreeMaxWidth.java b/src/class07_11/Code05_TreeMaxWidth.java similarity index 97% rename from src/class07/Code06_TreeMaxWidth.java rename to src/class07_11/Code05_TreeMaxWidth.java index de2c7d6..0c6d613 100644 --- a/src/class07/Code06_TreeMaxWidth.java +++ b/src/class07_11/Code05_TreeMaxWidth.java @@ -1,10 +1,10 @@ -package class07; +package class07_11; import java.util.HashMap; import java.util.LinkedList; import java.util.Queue; -public class Code06_TreeMaxWidth { +public class Code05_TreeMaxWidth { public static class Node { public int value; diff --git a/src/class07/Code07_SuccessorNode.java b/src/class07_11/Code06_SuccessorNode.java similarity index 97% rename from src/class07/Code07_SuccessorNode.java rename to src/class07_11/Code06_SuccessorNode.java index ba365e3..5133db6 100644 --- a/src/class07/Code07_SuccessorNode.java +++ b/src/class07_11/Code06_SuccessorNode.java @@ -1,6 +1,6 @@ -package class07; +package class07_11; -public class Code07_SuccessorNode { +public class Code06_SuccessorNode { public static class Node { public int value; diff --git a/src/class07_11/Code07_PaperFolding.java b/src/class07_11/Code07_PaperFolding.java new file mode 100644 index 0000000..0a2b72f --- /dev/null +++ b/src/class07_11/Code07_PaperFolding.java @@ -0,0 +1,28 @@ +package class07_11; + +public class Code07_PaperFolding { + + public static void printAllFolds(int N) { + process(1, N, true); + System.out.println(); + } + + // 当前你来了一个节点,脑海中想象的! + // 这个节点在第i层,一共有N层,N固定不变的 + // 这个节点如果是凹的话,down = T + // 这个节点如果是凸的话,down = F + // 函数的功能:中序打印以你想象的节点为头的整棵树! + public static void process(int i, int N, boolean down) { + if (i > N) { + return; + } + process(i + 1, N, true); + System.out.print(down ? "凹 " : "凸 "); + process(i + 1, N, false); + } + + public static void main(String[] args) { + int N = 4; + printAllFolds(N); + } +} diff --git a/src/class08/Code06_IsCBT.java b/src/class08_12/Code01_IsCBT.java similarity index 98% rename from src/class08/Code06_IsCBT.java rename to src/class08_12/Code01_IsCBT.java index a2aaf40..a5a153e 100644 --- a/src/class08/Code06_IsCBT.java +++ b/src/class08_12/Code01_IsCBT.java @@ -1,8 +1,8 @@ -package class08; +package class08_12; import java.util.LinkedList; -public class Code06_IsCBT { +public class Code01_IsCBT { public static class Node { public int value; diff --git a/src/class08/Code03_IsBST.java b/src/class08_12/Code02_IsBST.java similarity index 98% rename from src/class08/Code03_IsBST.java rename to src/class08_12/Code02_IsBST.java index a6a7922..199c188 100644 --- a/src/class08/Code03_IsBST.java +++ b/src/class08_12/Code02_IsBST.java @@ -1,8 +1,8 @@ -package class08; +package class08_12; import java.util.ArrayList; -public class Code03_IsBST { +public class Code02_IsBST { public static class Node { public int value; diff --git a/src/class08/Code01_IsBalanced.java b/src/class08_12/Code03_IsBalanced.java similarity index 97% rename from src/class08/Code01_IsBalanced.java rename to src/class08_12/Code03_IsBalanced.java index 38238c4..0eee9fd 100644 --- a/src/class08/Code01_IsBalanced.java +++ b/src/class08_12/Code03_IsBalanced.java @@ -1,6 +1,6 @@ -package class08; +package class08_12; -public class Code01_IsBalanced { +public class Code03_IsBalanced { public static class Node { public int value; diff --git a/src/class08/Code02_IsFull.java b/src/class08_12/Code04_IsFull.java similarity index 97% rename from src/class08/Code02_IsFull.java rename to src/class08_12/Code04_IsFull.java index 1512def..ef04e12 100644 --- a/src/class08/Code02_IsFull.java +++ b/src/class08_12/Code04_IsFull.java @@ -1,6 +1,6 @@ -package class08; +package class08_12; -public class Code02_IsFull { +public class Code04_IsFull { public static class Node { public int value; diff --git a/src/class08/Code04_MaxSubBSTSize.java b/src/class08_12/Code05_MaxSubBSTSize.java similarity index 98% rename from src/class08/Code04_MaxSubBSTSize.java rename to src/class08_12/Code05_MaxSubBSTSize.java index 2f4116c..d35e699 100644 --- a/src/class08/Code04_MaxSubBSTSize.java +++ b/src/class08_12/Code05_MaxSubBSTSize.java @@ -1,8 +1,8 @@ -package class08; +package class08_12; import java.util.ArrayList; -public class Code04_MaxSubBSTSize { +public class Code05_MaxSubBSTSize { public static class Node { public int value; diff --git a/src/class08/Code05_MaxSubBSTHead.java b/src/class08_12/Code06_MaxSubBSTHead.java similarity index 98% rename from src/class08/Code05_MaxSubBSTHead.java rename to src/class08_12/Code06_MaxSubBSTHead.java index b9fa1a4..abe7551 100644 --- a/src/class08/Code05_MaxSubBSTHead.java +++ b/src/class08_12/Code06_MaxSubBSTHead.java @@ -1,8 +1,8 @@ -package class08; +package class08_12; import java.util.ArrayList; -public class Code05_MaxSubBSTHead { +public class Code06_MaxSubBSTHead { public static class Node { public int value; diff --git a/src/class08/Code07_lowestAncestor.java b/src/class08_12/Code07_lowestAncestor.java similarity index 99% rename from src/class08/Code07_lowestAncestor.java rename to src/class08_12/Code07_lowestAncestor.java index 6a9affd..a39b301 100644 --- a/src/class08/Code07_lowestAncestor.java +++ b/src/class08_12/Code07_lowestAncestor.java @@ -1,4 +1,4 @@ -package class08; +package class08_12; import java.util.ArrayList; import java.util.HashMap; diff --git a/src/class08/Code08_MaxDistance.java b/src/class08_12/Code08_MaxDistance.java similarity index 99% rename from src/class08/Code08_MaxDistance.java rename to src/class08_12/Code08_MaxDistance.java index 1fd6e95..930c1dc 100644 --- a/src/class08/Code08_MaxDistance.java +++ b/src/class08_12/Code08_MaxDistance.java @@ -1,4 +1,4 @@ -package class08; +package class08_12; import java.util.ArrayList; import java.util.HashMap; diff --git a/src/class08/Code09_MaxHappy.java b/src/class08_12/Code09_MaxHappy.java similarity index 99% rename from src/class08/Code09_MaxHappy.java rename to src/class08_12/Code09_MaxHappy.java index 8e80e6e..b52851e 100644 --- a/src/class08/Code09_MaxHappy.java +++ b/src/class08_12/Code09_MaxHappy.java @@ -1,4 +1,4 @@ -package class08; +package class08_12; import java.util.ArrayList; import java.util.List;