mirror of
https://github.com/krahets/hello-algo.git
synced 2025-11-02 21:24:53 +08:00
Update the comments in
binary_search_tree and avl_tree.
This commit is contained in:
@ -203,10 +203,10 @@ TreeNode *search(avlTree *tree, int val) {
|
|||||||
// 循环查找,越过叶结点后跳出
|
// 循环查找,越过叶结点后跳出
|
||||||
while (cur != NULL) {
|
while (cur != NULL) {
|
||||||
if (cur->val < val) {
|
if (cur->val < val) {
|
||||||
// 目标结点在 root 的右子树中
|
// 目标结点在 cur 的右子树中
|
||||||
cur = cur->right;
|
cur = cur->right;
|
||||||
} else if (cur->val > val) {
|
} else if (cur->val > val) {
|
||||||
// 目标结点在 root 的左子树中
|
// 目标结点在 cur 的左子树中
|
||||||
cur = cur->left;
|
cur = cur->left;
|
||||||
} else {
|
} else {
|
||||||
// 找到目标结点,跳出循环
|
// 找到目标结点,跳出循环
|
||||||
|
|||||||
@ -53,11 +53,11 @@ TreeNode *search(binarySearchTree *bst, int num) {
|
|||||||
TreeNode *cur = bst->root;
|
TreeNode *cur = bst->root;
|
||||||
// 循环查找,越过叶结点后跳出
|
// 循环查找,越过叶结点后跳出
|
||||||
while (cur != NULL) {
|
while (cur != NULL) {
|
||||||
// 目标结点在 root 的右子树中
|
|
||||||
if (cur->val < num) {
|
if (cur->val < num) {
|
||||||
|
// 目标结点在 cur 的右子树中
|
||||||
cur = cur->right;
|
cur = cur->right;
|
||||||
} else if (cur->val > num) {
|
} else if (cur->val > num) {
|
||||||
// 目标结点在 root 的左子树中
|
// 目标结点在 cur 的左子树中
|
||||||
cur = cur->left;
|
cur = cur->left;
|
||||||
} else {
|
} else {
|
||||||
// 找到目标结点,跳出循环
|
// 找到目标结点,跳出循环
|
||||||
@ -81,10 +81,10 @@ TreeNode *insert(binarySearchTree *bst, int num) {
|
|||||||
}
|
}
|
||||||
pre = cur;
|
pre = cur;
|
||||||
if (cur->val < num) {
|
if (cur->val < num) {
|
||||||
// 插入位置在 root 的右子树中
|
// 插入位置在 cur 的右子树中
|
||||||
cur = cur->right;
|
cur = cur->right;
|
||||||
} else {
|
} else {
|
||||||
// 插入位置在 root 的左子树中
|
// 插入位置在 cur 的左子树中
|
||||||
cur = cur->left;
|
cur = cur->left;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -43,9 +43,9 @@ public:
|
|||||||
TreeNode* cur = root;
|
TreeNode* cur = root;
|
||||||
// 循环查找,越过叶结点后跳出
|
// 循环查找,越过叶结点后跳出
|
||||||
while (cur != nullptr) {
|
while (cur != nullptr) {
|
||||||
// 目标结点在 root 的右子树中
|
// 目标结点在 cur 的右子树中
|
||||||
if (cur->val < num) cur = cur->right;
|
if (cur->val < num) cur = cur->right;
|
||||||
// 目标结点在 root 的左子树中
|
// 目标结点在 cur 的左子树中
|
||||||
else if (cur->val > num) cur = cur->left;
|
else if (cur->val > num) cur = cur->left;
|
||||||
// 找到目标结点,跳出循环
|
// 找到目标结点,跳出循环
|
||||||
else break;
|
else break;
|
||||||
@ -64,9 +64,9 @@ public:
|
|||||||
// 找到重复结点,直接返回
|
// 找到重复结点,直接返回
|
||||||
if (cur->val == num) return nullptr;
|
if (cur->val == num) return nullptr;
|
||||||
pre = cur;
|
pre = cur;
|
||||||
// 插入位置在 root 的右子树中
|
// 插入位置在 cur 的右子树中
|
||||||
if (cur->val < num) cur = cur->right;
|
if (cur->val < num) cur = cur->right;
|
||||||
// 插入位置在 root 的左子树中
|
// 插入位置在 cur 的左子树中
|
||||||
else cur = cur->left;
|
else cur = cur->left;
|
||||||
}
|
}
|
||||||
// 插入结点 val
|
// 插入结点 val
|
||||||
|
|||||||
@ -193,10 +193,10 @@ namespace hello_algo.chapter_tree
|
|||||||
// 循环查找,越过叶结点后跳出
|
// 循环查找,越过叶结点后跳出
|
||||||
while (cur != null)
|
while (cur != null)
|
||||||
{
|
{
|
||||||
// 目标结点在 root 的右子树中
|
// 目标结点在 cur 的右子树中
|
||||||
if (cur.val < val)
|
if (cur.val < val)
|
||||||
cur = cur.right;
|
cur = cur.right;
|
||||||
// 目标结点在 root 的左子树中
|
// 目标结点在 cur 的左子树中
|
||||||
else if (cur.val > val)
|
else if (cur.val > val)
|
||||||
cur = cur.left;
|
cur = cur.left;
|
||||||
// 找到目标结点,跳出循环
|
// 找到目标结点,跳出循环
|
||||||
|
|||||||
@ -42,9 +42,9 @@ namespace hello_algo.chapter_tree
|
|||||||
// 循环查找,越过叶结点后跳出
|
// 循环查找,越过叶结点后跳出
|
||||||
while (cur != null)
|
while (cur != null)
|
||||||
{
|
{
|
||||||
// 目标结点在 root 的右子树中
|
// 目标结点在 cur 的右子树中
|
||||||
if (cur.val < num) cur = cur.right;
|
if (cur.val < num) cur = cur.right;
|
||||||
// 目标结点在 root 的左子树中
|
// 目标结点在 cur 的左子树中
|
||||||
else if (cur.val > num) cur = cur.left;
|
else if (cur.val > num) cur = cur.left;
|
||||||
// 找到目标结点,跳出循环
|
// 找到目标结点,跳出循环
|
||||||
else break;
|
else break;
|
||||||
@ -65,9 +65,9 @@ namespace hello_algo.chapter_tree
|
|||||||
// 找到重复结点,直接返回
|
// 找到重复结点,直接返回
|
||||||
if (cur.val == num) return null;
|
if (cur.val == num) return null;
|
||||||
pre = cur;
|
pre = cur;
|
||||||
// 插入位置在 root 的右子树中
|
// 插入位置在 cur 的右子树中
|
||||||
if (cur.val < num) cur = cur.right;
|
if (cur.val < num) cur = cur.right;
|
||||||
// 插入位置在 root 的左子树中
|
// 插入位置在 cur 的左子树中
|
||||||
else cur = cur.left;
|
else cur = cur.left;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -195,11 +195,11 @@ func (t *avlTree) search(val int) *TreeNode {
|
|||||||
cur := t.root
|
cur := t.root
|
||||||
// 循环查找,越过叶结点后跳出
|
// 循环查找,越过叶结点后跳出
|
||||||
for cur != nil {
|
for cur != nil {
|
||||||
// 目标结点在 root 的右子树中
|
|
||||||
if cur.Val < val {
|
if cur.Val < val {
|
||||||
|
// 目标结点在 cur 的右子树中
|
||||||
cur = cur.Right
|
cur = cur.Right
|
||||||
} else if cur.Val > val {
|
} else if cur.Val > val {
|
||||||
// 目标结点在 root 的左子树中
|
// 目标结点在 cur 的左子树中
|
||||||
cur = cur.Left
|
cur = cur.Left
|
||||||
} else {
|
} else {
|
||||||
// 找到目标结点,跳出循环
|
// 找到目标结点,跳出循环
|
||||||
|
|||||||
@ -46,10 +46,10 @@ func (bst *binarySearchTree) search(num int) *TreeNode {
|
|||||||
// 循环查找,越过叶结点后跳出
|
// 循环查找,越过叶结点后跳出
|
||||||
for node != nil {
|
for node != nil {
|
||||||
if node.Val < num {
|
if node.Val < num {
|
||||||
// 目标结点在 root 的右子树中
|
// 目标结点在 cur 的右子树中
|
||||||
node = node.Right
|
node = node.Right
|
||||||
} else if node.Val > num {
|
} else if node.Val > num {
|
||||||
// 目标结点在 root 的左子树中
|
// 目标结点在 cur 的左子树中
|
||||||
node = node.Left
|
node = node.Left
|
||||||
} else {
|
} else {
|
||||||
// 找到目标结点,跳出循环
|
// 找到目标结点,跳出循环
|
||||||
|
|||||||
@ -165,10 +165,10 @@ class AVLTree {
|
|||||||
TreeNode cur = root;
|
TreeNode cur = root;
|
||||||
// 循环查找,越过叶结点后跳出
|
// 循环查找,越过叶结点后跳出
|
||||||
while (cur != null) {
|
while (cur != null) {
|
||||||
// 目标结点在 root 的右子树中
|
// 目标结点在 cur 的右子树中
|
||||||
if (cur.val < val)
|
if (cur.val < val)
|
||||||
cur = cur.right;
|
cur = cur.right;
|
||||||
// 目标结点在 root 的左子树中
|
// 目标结点在 cur 的左子树中
|
||||||
else if (cur.val > val)
|
else if (cur.val > val)
|
||||||
cur = cur.left;
|
cur = cur.left;
|
||||||
// 找到目标结点,跳出循环
|
// 找到目标结点,跳出循环
|
||||||
|
|||||||
@ -40,9 +40,9 @@ class BinarySearchTree {
|
|||||||
TreeNode cur = root;
|
TreeNode cur = root;
|
||||||
// 循环查找,越过叶结点后跳出
|
// 循环查找,越过叶结点后跳出
|
||||||
while (cur != null) {
|
while (cur != null) {
|
||||||
// 目标结点在 root 的右子树中
|
// 目标结点在 cur 的右子树中
|
||||||
if (cur.val < num) cur = cur.right;
|
if (cur.val < num) cur = cur.right;
|
||||||
// 目标结点在 root 的左子树中
|
// 目标结点在 cur 的左子树中
|
||||||
else if (cur.val > num) cur = cur.left;
|
else if (cur.val > num) cur = cur.left;
|
||||||
// 找到目标结点,跳出循环
|
// 找到目标结点,跳出循环
|
||||||
else break;
|
else break;
|
||||||
@ -61,9 +61,9 @@ class BinarySearchTree {
|
|||||||
// 找到重复结点,直接返回
|
// 找到重复结点,直接返回
|
||||||
if (cur.val == num) return null;
|
if (cur.val == num) return null;
|
||||||
pre = cur;
|
pre = cur;
|
||||||
// 插入位置在 root 的右子树中
|
// 插入位置在 cur 的右子树中
|
||||||
if (cur.val < num) cur = cur.right;
|
if (cur.val < num) cur = cur.right;
|
||||||
// 插入位置在 root 的左子树中
|
// 插入位置在 cur 的左子树中
|
||||||
else cur = cur.left;
|
else cur = cur.left;
|
||||||
}
|
}
|
||||||
// 插入结点 val
|
// 插入结点 val
|
||||||
|
|||||||
@ -37,9 +37,9 @@ function search(num) {
|
|||||||
let cur = root;
|
let cur = root;
|
||||||
// 循环查找,越过叶结点后跳出
|
// 循环查找,越过叶结点后跳出
|
||||||
while (cur !== null) {
|
while (cur !== null) {
|
||||||
// 目标结点在 root 的右子树中
|
// 目标结点在 cur 的右子树中
|
||||||
if (cur.val < num) cur = cur.right;
|
if (cur.val < num) cur = cur.right;
|
||||||
// 目标结点在 root 的左子树中
|
// 目标结点在 cur 的左子树中
|
||||||
else if (cur.val > num) cur = cur.left;
|
else if (cur.val > num) cur = cur.left;
|
||||||
// 找到目标结点,跳出循环
|
// 找到目标结点,跳出循环
|
||||||
else break;
|
else break;
|
||||||
@ -58,9 +58,9 @@ function insert(num) {
|
|||||||
// 找到重复结点,直接返回
|
// 找到重复结点,直接返回
|
||||||
if (cur.val === num) return null;
|
if (cur.val === num) return null;
|
||||||
pre = cur;
|
pre = cur;
|
||||||
// 插入位置在 root 的右子树中
|
// 插入位置在 cur 的右子树中
|
||||||
if (cur.val < num) cur = cur.right;
|
if (cur.val < num) cur = cur.right;
|
||||||
// 插入位置在 root 的左子树中
|
// 插入位置在 cur 的左子树中
|
||||||
else cur = cur.left;
|
else cur = cur.left;
|
||||||
}
|
}
|
||||||
// 插入结点 val
|
// 插入结点 val
|
||||||
|
|||||||
@ -152,10 +152,10 @@ class AVLTree:
|
|||||||
cur = self.root
|
cur = self.root
|
||||||
# 循环查找,越过叶结点后跳出
|
# 循环查找,越过叶结点后跳出
|
||||||
while cur is not None:
|
while cur is not None:
|
||||||
# 目标结点在 root 的右子树中
|
# 目标结点在 cur 的右子树中
|
||||||
if cur.val < val:
|
if cur.val < val:
|
||||||
cur = cur.right
|
cur = cur.right
|
||||||
# 目标结点在 root 的左子树中
|
# 目标结点在 cur 的左子树中
|
||||||
elif cur.val > val:
|
elif cur.val > val:
|
||||||
cur = cur.left
|
cur = cur.left
|
||||||
# 找到目标结点,跳出循环
|
# 找到目标结点,跳出循环
|
||||||
|
|||||||
@ -37,10 +37,10 @@ class BinarySearchTree:
|
|||||||
cur = self.root
|
cur = self.root
|
||||||
# 循环查找,越过叶结点后跳出
|
# 循环查找,越过叶结点后跳出
|
||||||
while cur is not None:
|
while cur is not None:
|
||||||
# 目标结点在 root 的右子树中
|
# 目标结点在 cur 的右子树中
|
||||||
if cur.val < num:
|
if cur.val < num:
|
||||||
cur = cur.right
|
cur = cur.right
|
||||||
# 目标结点在 root 的左子树中
|
# 目标结点在 cur 的左子树中
|
||||||
elif cur.val > num:
|
elif cur.val > num:
|
||||||
cur = cur.left
|
cur = cur.left
|
||||||
# 找到目标结点,跳出循环
|
# 找到目标结点,跳出循环
|
||||||
@ -64,10 +64,11 @@ class BinarySearchTree:
|
|||||||
if cur.val == num:
|
if cur.val == num:
|
||||||
return None
|
return None
|
||||||
pre = cur
|
pre = cur
|
||||||
|
# 插入位置在 cur 的右子树中
|
||||||
if cur.val < num: # 插入位置在 root 的右子树中
|
if cur.val < num:
|
||||||
cur = cur.right
|
cur = cur.right
|
||||||
else: # 插入位置在 root 的左子树中
|
# 插入位置在 cur 的左子树中
|
||||||
|
else:
|
||||||
cur = cur.left
|
cur = cur.left
|
||||||
|
|
||||||
# 插入结点 val
|
# 插入结点 val
|
||||||
|
|||||||
@ -40,9 +40,9 @@ function search(num: number): TreeNode | null {
|
|||||||
// 循环查找,越过叶结点后跳出
|
// 循环查找,越过叶结点后跳出
|
||||||
while (cur !== null) {
|
while (cur !== null) {
|
||||||
if (cur.val < num) {
|
if (cur.val < num) {
|
||||||
cur = cur.right; // 目标结点在 root 的右子树中
|
cur = cur.right; // 目标结点在 cur 的右子树中
|
||||||
} else if (cur.val > num) {
|
} else if (cur.val > num) {
|
||||||
cur = cur.left; // 目标结点在 root 的左子树中
|
cur = cur.left; // 目标结点在 cur 的左子树中
|
||||||
} else {
|
} else {
|
||||||
break; // 找到目标结点,跳出循环
|
break; // 找到目标结点,跳出循环
|
||||||
}
|
}
|
||||||
@ -66,9 +66,9 @@ function insert(num: number): TreeNode | null {
|
|||||||
}
|
}
|
||||||
pre = cur;
|
pre = cur;
|
||||||
if (cur.val < num) {
|
if (cur.val < num) {
|
||||||
cur = cur.right as TreeNode; // 插入位置在 root 的右子树中
|
cur = cur.right as TreeNode; // 插入位置在 cur 的右子树中
|
||||||
} else {
|
} else {
|
||||||
cur = cur.left as TreeNode; // 插入位置在 root 的左子树中
|
cur = cur.left as TreeNode; // 插入位置在 cur 的左子树中
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 插入结点 val
|
// 插入结点 val
|
||||||
|
|||||||
@ -43,9 +43,9 @@ comments: true
|
|||||||
TreeNode cur = root;
|
TreeNode cur = root;
|
||||||
// 循环查找,越过叶结点后跳出
|
// 循环查找,越过叶结点后跳出
|
||||||
while (cur != null) {
|
while (cur != null) {
|
||||||
// 目标结点在 root 的右子树中
|
// 目标结点在 cur 的右子树中
|
||||||
if (cur.val < num) cur = cur.right;
|
if (cur.val < num) cur = cur.right;
|
||||||
// 目标结点在 root 的左子树中
|
// 目标结点在 cur 的左子树中
|
||||||
else if (cur.val > num) cur = cur.left;
|
else if (cur.val > num) cur = cur.left;
|
||||||
// 找到目标结点,跳出循环
|
// 找到目标结点,跳出循环
|
||||||
else break;
|
else break;
|
||||||
@ -63,9 +63,9 @@ comments: true
|
|||||||
TreeNode* cur = root;
|
TreeNode* cur = root;
|
||||||
// 循环查找,越过叶结点后跳出
|
// 循环查找,越过叶结点后跳出
|
||||||
while (cur != nullptr) {
|
while (cur != nullptr) {
|
||||||
// 目标结点在 root 的右子树中
|
// 目标结点在 cur 的右子树中
|
||||||
if (cur->val < num) cur = cur->right;
|
if (cur->val < num) cur = cur->right;
|
||||||
// 目标结点在 root 的左子树中
|
// 目标结点在 cur 的左子树中
|
||||||
else if (cur->val > num) cur = cur->left;
|
else if (cur->val > num) cur = cur->left;
|
||||||
// 找到目标结点,跳出循环
|
// 找到目标结点,跳出循环
|
||||||
else break;
|
else break;
|
||||||
@ -83,10 +83,10 @@ comments: true
|
|||||||
cur = self.root
|
cur = self.root
|
||||||
# 循环查找,越过叶结点后跳出
|
# 循环查找,越过叶结点后跳出
|
||||||
while cur is not None:
|
while cur is not None:
|
||||||
# 目标结点在 root 的右子树中
|
# 目标结点在 cur 的右子树中
|
||||||
if cur.val < num:
|
if cur.val < num:
|
||||||
cur = cur.right
|
cur = cur.right
|
||||||
# 目标结点在 root 的左子树中
|
# 目标结点在 cur 的左子树中
|
||||||
elif cur.val > num:
|
elif cur.val > num:
|
||||||
cur = cur.left
|
cur = cur.left
|
||||||
# 找到目标结点,跳出循环
|
# 找到目标结点,跳出循环
|
||||||
@ -104,10 +104,10 @@ comments: true
|
|||||||
// 循环查找,越过叶结点后跳出
|
// 循环查找,越过叶结点后跳出
|
||||||
for node != nil {
|
for node != nil {
|
||||||
if node.Val < num {
|
if node.Val < num {
|
||||||
// 目标结点在 root 的右子树中
|
// 目标结点在 cur 的右子树中
|
||||||
node = node.Right
|
node = node.Right
|
||||||
} else if node.Val > num {
|
} else if node.Val > num {
|
||||||
// 目标结点在 root 的左子树中
|
// 目标结点在 cur 的左子树中
|
||||||
node = node.Left
|
node = node.Left
|
||||||
} else {
|
} else {
|
||||||
// 找到目标结点,跳出循环
|
// 找到目标结点,跳出循环
|
||||||
@ -127,9 +127,9 @@ comments: true
|
|||||||
let cur = root;
|
let cur = root;
|
||||||
// 循环查找,越过叶结点后跳出
|
// 循环查找,越过叶结点后跳出
|
||||||
while (cur !== null) {
|
while (cur !== null) {
|
||||||
// 目标结点在 root 的右子树中
|
// 目标结点在 cur 的右子树中
|
||||||
if (cur.val < num) cur = cur.right;
|
if (cur.val < num) cur = cur.right;
|
||||||
// 目标结点在 root 的左子树中
|
// 目标结点在 cur 的左子树中
|
||||||
else if (cur.val > num) cur = cur.left;
|
else if (cur.val > num) cur = cur.left;
|
||||||
// 找到目标结点,跳出循环
|
// 找到目标结点,跳出循环
|
||||||
else break;
|
else break;
|
||||||
@ -148,9 +148,9 @@ comments: true
|
|||||||
// 循环查找,越过叶结点后跳出
|
// 循环查找,越过叶结点后跳出
|
||||||
while (cur !== null) {
|
while (cur !== null) {
|
||||||
if (cur.val < num) {
|
if (cur.val < num) {
|
||||||
cur = cur.right; // 目标结点在 root 的右子树中
|
cur = cur.right; // 目标结点在 cur 的右子树中
|
||||||
} else if (cur.val > num) {
|
} else if (cur.val > num) {
|
||||||
cur = cur.left; // 目标结点在 root 的左子树中
|
cur = cur.left; // 目标结点在 cur 的左子树中
|
||||||
} else {
|
} else {
|
||||||
break; // 找到目标结点,跳出循环
|
break; // 找到目标结点,跳出循环
|
||||||
}
|
}
|
||||||
@ -176,9 +176,9 @@ comments: true
|
|||||||
// 循环查找,越过叶结点后跳出
|
// 循环查找,越过叶结点后跳出
|
||||||
while (cur != null)
|
while (cur != null)
|
||||||
{
|
{
|
||||||
// 目标结点在 root 的右子树中
|
// 目标结点在 cur 的右子树中
|
||||||
if (cur.val < num) cur = cur.right;
|
if (cur.val < num) cur = cur.right;
|
||||||
// 目标结点在 root 的左子树中
|
// 目标结点在 cur 的左子树中
|
||||||
else if (cur.val > num) cur = cur.left;
|
else if (cur.val > num) cur = cur.left;
|
||||||
// 找到目标结点,跳出循环
|
// 找到目标结点,跳出循环
|
||||||
else break;
|
else break;
|
||||||
@ -218,9 +218,9 @@ comments: true
|
|||||||
// 找到重复结点,直接返回
|
// 找到重复结点,直接返回
|
||||||
if (cur.val == num) return null;
|
if (cur.val == num) return null;
|
||||||
pre = cur;
|
pre = cur;
|
||||||
// 插入位置在 root 的右子树中
|
// 插入位置在 cur 的右子树中
|
||||||
if (cur.val < num) cur = cur.right;
|
if (cur.val < num) cur = cur.right;
|
||||||
// 插入位置在 root 的左子树中
|
// 插入位置在 cur 的左子树中
|
||||||
else cur = cur.left;
|
else cur = cur.left;
|
||||||
}
|
}
|
||||||
// 插入结点 val
|
// 插入结点 val
|
||||||
@ -244,9 +244,9 @@ comments: true
|
|||||||
// 找到重复结点,直接返回
|
// 找到重复结点,直接返回
|
||||||
if (cur->val == num) return nullptr;
|
if (cur->val == num) return nullptr;
|
||||||
pre = cur;
|
pre = cur;
|
||||||
// 插入位置在 root 的右子树中
|
// 插入位置在 cur 的右子树中
|
||||||
if (cur->val < num) cur = cur->right;
|
if (cur->val < num) cur = cur->right;
|
||||||
// 插入位置在 root 的左子树中
|
// 插入位置在 cur 的左子树中
|
||||||
else cur = cur->left;
|
else cur = cur->left;
|
||||||
}
|
}
|
||||||
// 插入结点 val
|
// 插入结点 val
|
||||||
@ -276,10 +276,11 @@ comments: true
|
|||||||
if cur.val == num:
|
if cur.val == num:
|
||||||
return None
|
return None
|
||||||
pre = cur
|
pre = cur
|
||||||
|
# 插入位置在 cur 的右子树中
|
||||||
if cur.val < num: # 插入位置在 root 的右子树中
|
if cur.val < num:
|
||||||
cur = cur.right
|
cur = cur.right
|
||||||
else: # 插入位置在 root 的左子树中
|
# 插入位置在 cur 的左子树中
|
||||||
|
else:
|
||||||
cur = cur.left
|
cur = cur.left
|
||||||
|
|
||||||
# 插入结点 val
|
# 插入结点 val
|
||||||
@ -339,9 +340,9 @@ comments: true
|
|||||||
// 找到重复结点,直接返回
|
// 找到重复结点,直接返回
|
||||||
if (cur.val === num) return null;
|
if (cur.val === num) return null;
|
||||||
pre = cur;
|
pre = cur;
|
||||||
// 插入位置在 root 的右子树中
|
// 插入位置在 cur 的右子树中
|
||||||
if (cur.val < num) cur = cur.right;
|
if (cur.val < num) cur = cur.right;
|
||||||
// 插入位置在 root 的左子树中
|
// 插入位置在 cur 的左子树中
|
||||||
else cur = cur.left;
|
else cur = cur.left;
|
||||||
}
|
}
|
||||||
// 插入结点 val
|
// 插入结点 val
|
||||||
@ -370,9 +371,9 @@ comments: true
|
|||||||
}
|
}
|
||||||
pre = cur;
|
pre = cur;
|
||||||
if (cur.val < num) {
|
if (cur.val < num) {
|
||||||
cur = cur.right as TreeNode; // 插入位置在 root 的右子树中
|
cur = cur.right as TreeNode; // 插入位置在 cur 的右子树中
|
||||||
} else {
|
} else {
|
||||||
cur = cur.left as TreeNode; // 插入位置在 root 的左子树中
|
cur = cur.left as TreeNode; // 插入位置在 cur 的左子树中
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 插入结点 val
|
// 插入结点 val
|
||||||
@ -407,9 +408,9 @@ comments: true
|
|||||||
// 找到重复结点,直接返回
|
// 找到重复结点,直接返回
|
||||||
if (cur.val == num) return null;
|
if (cur.val == num) return null;
|
||||||
pre = cur;
|
pre = cur;
|
||||||
// 插入位置在 root 的右子树中
|
// 插入位置在 cur 的右子树中
|
||||||
if (cur.val < num) cur = cur.right;
|
if (cur.val < num) cur = cur.right;
|
||||||
// 插入位置在 root 的左子树中
|
// 插入位置在 cur 的左子树中
|
||||||
else cur = cur.left;
|
else cur = cur.left;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user