diff --git a/codes/javascript/chapter_heap/my_heap.js b/codes/javascript/chapter_heap/my_heap.js index 945b7a178..3ec8a6231 100644 --- a/codes/javascript/chapter_heap/my_heap.js +++ b/codes/javascript/chapter_heap/my_heap.js @@ -131,6 +131,7 @@ function testPoll(maxHeap) { maxHeap.print(); } +/* Driver Code */ /* 初始化大顶堆 */ const maxHeap = new MaxHeap([9, 8, 6, 6, 7, 5, 2, 1, 4, 3, 6, 2]); console.log("\n输入列表并建堆后"); diff --git a/codes/typescript/chapter_heap/my_heap.ts b/codes/typescript/chapter_heap/my_heap.ts index c80abdcc8..03c388c29 100644 --- a/codes/typescript/chapter_heap/my_heap.ts +++ b/codes/typescript/chapter_heap/my_heap.ts @@ -1,5 +1,5 @@ /** - * File: my_heap.js + * File: my_heap.ts * Created Time: 2023-02-07 * Author: Justin (xiefahit@gmail.com) */ diff --git a/docs/chapter_tree/avl_tree.md b/docs/chapter_tree/avl_tree.md old mode 100755 new mode 100644 index e498978b2..45fca7c20 --- a/docs/chapter_tree/avl_tree.md +++ b/docs/chapter_tree/avl_tree.md @@ -875,6 +875,16 @@ AVL 树的独特之处在于「旋转 Rotation」的操作,其可 **在不影 return root; } + /* 获取中序遍历中的下一个结点(仅适用于 root 有左子结点的情况) */ + TreeNode* getInOrderNext(TreeNode* node) { + if (node == nullptr) return node; + // 循环访问左子结点,直到叶结点时为最小结点,跳出 + while (node->left != nullptr) { + node = node->left; + } + return node; + } + /* 递归删除结点(辅助函数) */ TreeNode* removeHelper(TreeNode* node, int val) { if (node == nullptr) return nullptr; @@ -965,6 +975,18 @@ AVL 树的独特之处在于「旋转 Rotation」的操作,其可 **在不影 // 返回子树的根结点 return node } + + /* 获取中序遍历中的下一个结点(仅适用于 root 有左子结点的情况) */ + func getInOrderNext(node *TreeNode) *TreeNode { + if node == nil { + return node + } + // 循环访问左子结点,直到叶结点时为最小结点,跳出 + for node.Left != nil { + node = node.Left + } + return node + } ``` === "JavaScript" @@ -1003,16 +1025,6 @@ AVL 树的独特之处在于「旋转 Rotation」的操作,其可 **在不影 return node; } - /* 获取中序遍历中的下一个结点(仅适用于 root 有左子结点的情况) */ - getInOrderNext(node) { - if (node === null) return node; - // 循环访问左子结点,直到叶结点时为最小结点,跳出 - while (node.left !== null) { - node = node.left; - } - return node; - } - /* 获取中序遍历中的下一个结点(仅适用于 root 有左子结点的情况) */ getInOrderNext(node) { if (node === null) return node; @@ -1137,6 +1149,19 @@ AVL 树的独特之处在于「旋转 Rotation」的操作,其可 **在不影 // 返回子树的根结点 return node } + + /* 获取中序遍历中的下一个结点(仅适用于 root 有左子结点的情况) */ + private func getInOrderNext(node: TreeNode?) -> TreeNode? { + var node = node + if node == nil { + return node + } + // 循环访问左子结点,直到叶结点时为最小结点,跳出 + while node?.left != nil { + node = node?.left + } + return node + } ``` === "Zig"