diff --git a/MCA算法突击课/第03期/mca_03/Code01_MergeKSortedLists.java b/MCA算法突击课/第03期/mca_03/Code01_MergeKSortedLists.java index e1e137a..f8facb8 100644 --- a/MCA算法突击课/第03期/mca_03/Code01_MergeKSortedLists.java +++ b/MCA算法突击课/第03期/mca_03/Code01_MergeKSortedLists.java @@ -3,6 +3,8 @@ package 第03期.mca_03; import java.util.Comparator; import java.util.PriorityQueue; +// 给你一个链表数组,每个链表都已经按升序排列。 +// 请你将所有链表合并到一个升序链表中,返回合并后的链表。 // 测试链接:https://leetcode.cn/problems/merge-k-sorted-lists/ public class Code01_MergeKSortedLists { diff --git a/MCA算法突击课/第03期/mca_03/Code02_LevelTraversalBT.java b/MCA算法突击课/第03期/mca_03/Code02_LevelTraversalBT.java index f952851..049bdd9 100644 --- a/MCA算法突击课/第03期/mca_03/Code02_LevelTraversalBT.java +++ b/MCA算法突击课/第03期/mca_03/Code02_LevelTraversalBT.java @@ -5,6 +5,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Queue; +// 给你二叉树的根节点 root ,返回其节点值的 层序遍历 +// 即逐层地从左到右访问所有节点 // 测试链接 : https://leetcode.cn/problems/binary-tree-level-order-traversal/ public class Code02_LevelTraversalBT { diff --git a/MCA算法突击课/第03期/mca_03/Code03_ConstructBinaryTreeFromPreorderAndInorderTraversal.java b/MCA算法突击课/第03期/mca_03/Code03_ConstructBinaryTreeFromPreorderAndInorderTraversal.java index 3723f7b..ba81752 100644 --- a/MCA算法突击课/第03期/mca_03/Code03_ConstructBinaryTreeFromPreorderAndInorderTraversal.java +++ b/MCA算法突击课/第03期/mca_03/Code03_ConstructBinaryTreeFromPreorderAndInorderTraversal.java @@ -2,7 +2,11 @@ package 第03期.mca_03; import java.util.HashMap; -//测试链接:https://leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal +// 给定两个整数数组 preorder 和 inorder +// 其中 preorder 是二叉树的先序遍历 +// inorder 是同一棵树的中序遍历 +// 请构造二叉树并返回其根节点。 +// 测试链接:https://leetcode.cn/problems/construct-binary-tree-from-preorder-and-inorder-traversal/ public class Code03_ConstructBinaryTreeFromPreorderAndInorderTraversal { // 提交时不提交这个类 diff --git a/MCA算法突击课/第03期/mca_03/Code04_IsCBT.java b/MCA算法突击课/第03期/mca_03/Code04_IsCBT.java index cedc300..89444a0 100644 --- a/MCA算法突击课/第03期/mca_03/Code04_IsCBT.java +++ b/MCA算法突击课/第03期/mca_03/Code04_IsCBT.java @@ -2,6 +2,10 @@ package 第03期.mca_03; import java.util.LinkedList; +// 给定一个二叉树的 root ,确定它是否是一个 完全二叉树 +// 在一个 完全二叉树 中,除了最后一个关卡外,所有关卡都是完全被填满的 +// 并且最后一个关卡中的所有节点都是尽可能靠左的 +// 它可以包含 1 到 2h 节点之间的最后一级 h // 测试链接 : https://leetcode.cn/problems/check-completeness-of-a-binary-tree/ public class Code04_IsCBT { diff --git a/MCA算法突击课/第03期/mca_03/Code05_IsBST.java b/MCA算法突击课/第03期/mca_03/Code05_IsBST.java index 0574bc6..1877a1f 100644 --- a/MCA算法突击课/第03期/mca_03/Code05_IsBST.java +++ b/MCA算法突击课/第03期/mca_03/Code05_IsBST.java @@ -1,5 +1,10 @@ package 第03期.mca_03; +// 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树 +// 有效 二叉搜索树定义如下: +// 节点的左子树只包含 小于 当前节点的数 +// 节点的右子树只包含 大于 当前节点的数 +// 所有左子树和右子树自身必须也是二叉搜索树 // 测试链接 : https://leetcode.cn/problems/validate-binary-search-tree/ public class Code05_IsBST { diff --git a/MCA算法突击课/第03期/mca_03/Code06_IsBalanced.java b/MCA算法突击课/第03期/mca_03/Code06_IsBalanced.java index cb5dba6..b8b3f99 100644 --- a/MCA算法突击课/第03期/mca_03/Code06_IsBalanced.java +++ b/MCA算法突击课/第03期/mca_03/Code06_IsBalanced.java @@ -1,5 +1,8 @@ package 第03期.mca_03; +// 给定一个二叉树,判断它是否是高度平衡的二叉树 +// 本题中,一棵高度平衡二叉树定义为 +// 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1 // 测试链接 : https://leetcode.cn/problems/balanced-binary-tree/ public class Code06_IsBalanced { diff --git a/MCA算法突击课/第03期/mca_03/Code07_CompleteTreeNodeNumber.java b/MCA算法突击课/第03期/mca_03/Code07_CompleteTreeNodeNumber.java index 2009756..4d8daf2 100644 --- a/MCA算法突击课/第03期/mca_03/Code07_CompleteTreeNodeNumber.java +++ b/MCA算法突击课/第03期/mca_03/Code07_CompleteTreeNodeNumber.java @@ -1,6 +1,11 @@ package 第03期.mca_03; -//本题测试链接 : https://leetcode.cn/problems/count-complete-tree-nodes/ +// 给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数 +// 完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外 +// 其余每层节点数都达到最大值 +// 并且最下面一层的节点都集中在该层最左边的若干位置 +// 若最底层为第 h 层,则该层包含 1~ 2h 个节点。 +// 测试链接 : https://leetcode.cn/problems/count-complete-tree-nodes/ public class Code07_CompleteTreeNodeNumber { // 提交时不要提交这个类 diff --git a/MCA算法突击课/第03期/mca_03/Code08_MaxSubBSTSize.java b/MCA算法突击课/第03期/mca_03/Code08_MaxSubBSTSize.java index 5f891ec..17e38c0 100644 --- a/MCA算法突击课/第03期/mca_03/Code08_MaxSubBSTSize.java +++ b/MCA算法突击课/第03期/mca_03/Code08_MaxSubBSTSize.java @@ -1,6 +1,12 @@ package 第03期.mca_03; -// 测试链接 : https://leetcode.com/problems/largest-bst-subtree +// 给定一个二叉树,找到其中最大的二叉搜索树(BST)子树,并返回该子树的大小 +// 其中,最大指的是子树节点数最多的 +// 二叉搜索树(BST)中的所有节点都具备以下属性: +// 左子树的值小于其父(根)节点的值 +// 右子树的值大于其父(根)节点的值 +// 注意:子树必须包含其所有后代 +// 测试链接 : https://leetcode.cn/problems/largest-bst-subtree public class Code08_MaxSubBSTSize { // 提交时不要提交这个类 diff --git a/MCA算法突击课/第03期/mca_03/Code09_DiameterOfBinaryTree.java b/MCA算法突击课/第03期/mca_03/Code09_DiameterOfBinaryTree.java index 1ccc338..a955b82 100644 --- a/MCA算法突击课/第03期/mca_03/Code09_DiameterOfBinaryTree.java +++ b/MCA算法突击课/第03期/mca_03/Code09_DiameterOfBinaryTree.java @@ -1,5 +1,8 @@ package 第03期.mca_03; +// 给定一棵二叉树,你需要计算它的直径长度 +// 一棵二叉树的直径长度是任意两个结点路径长度中的最大值 +// 这条路径可能穿过也可能不穿过根结点 // 测试链接 : https://leetcode.cn/problems/diameter-of-binary-tree/ public class Code09_DiameterOfBinaryTree {