mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 19:44:45 +08:00
Update 0701.二叉搜索树中的插入操作.md
补充python注释
This commit is contained in:
@ -253,21 +253,38 @@ class Solution {
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
-----
|
||||
## Python
|
||||
|
||||
**递归法** - 有返回值
|
||||
|
||||
```python
|
||||
# Definition for a binary tree node.
|
||||
# class TreeNode:
|
||||
# def __init__(self, val=0, left=None, right=None):
|
||||
# self.val = val
|
||||
# self.left = left
|
||||
# self.right = right
|
||||
class Solution:
|
||||
def insertIntoBST(self, root: TreeNode, val: int) -> TreeNode:
|
||||
if root is None:
|
||||
return TreeNode(val) # 如果当前节点为空,也就意味着val找到了合适的位置,此时创建节点直接返回。
|
||||
# 返回更新后的以当前root为根节点的新树,方便用于更新上一层的父子节点关系链
|
||||
|
||||
# Base Case
|
||||
if not root: return TreeNode(val)
|
||||
|
||||
# 单层递归逻辑:
|
||||
if val < root.val:
|
||||
# 将val插入至当前root的左子树中合适的位置
|
||||
# 并更新当前root的左子树为包含目标val的新左子树
|
||||
root.left = self.insertIntoBST(root.left, val)
|
||||
|
||||
if root.val < val:
|
||||
root.right = self.insertIntoBST(root.right, val) # 递归创建右子树
|
||||
if root.val > val:
|
||||
root.left = self.insertIntoBST(root.left, val) # 递归创建左子树
|
||||
return root
|
||||
# 将val插入至当前root的右子树中合适的位置
|
||||
# 并更新当前root的右子树为包含目标val的新右子树
|
||||
root.right = self.insertIntoBST(root.right, val)
|
||||
|
||||
# 返回更新后的以当前root为根节点的新树
|
||||
return roo
|
||||
```
|
||||
|
||||
**递归法** - 无返回值
|
||||
@ -328,7 +345,7 @@ class Solution:
|
||||
return root
|
||||
|
||||
```
|
||||
|
||||
-----
|
||||
## Go
|
||||
|
||||
递归法
|
||||
@ -374,7 +391,7 @@ func insertIntoBST(root *TreeNode, val int) *TreeNode {
|
||||
return root
|
||||
}
|
||||
```
|
||||
|
||||
-----
|
||||
## JavaScript
|
||||
|
||||
有返回值的递归写法
|
||||
|
Reference in New Issue
Block a user