Update 0701.二叉搜索树中的插入操作.md

补充python注释
This commit is contained in:
Asterisk
2021-10-09 15:06:36 +08:00
committed by GitHub
parent 145b5b0c28
commit cd1c56ae13

View File

@ -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
有返回值的递归写法