Merge pull request #827 from casnz1601/patch-6

Update 0701.二叉搜索树中的插入操作.md
This commit is contained in:
程序员Carl
2021-10-11 09:27:39 +08:00
committed by GitHub

View File

@ -253,21 +253,38 @@ class Solution {
} }
} }
``` ```
-----
## Python ## Python
**递归法** - 有返回值 **递归法** - 有返回值
```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: class Solution:
def insertIntoBST(self, root: TreeNode, val: int) -> TreeNode: def insertIntoBST(self, root: TreeNode, val: int) -> TreeNode:
if root is None: # 返回更新后的以当前root为根节点的新树方便用于更新上一层的父子节点关系链
return TreeNode(val) # 如果当前节点为空也就意味着val找到了合适的位置此时创建节点直接返回。
# 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: if root.val < val:
root.right = self.insertIntoBST(root.right, val) # 递归创建右子树 # 将val插入至当前root的右子树中合适的位置
if root.val > val: # 并更新当前root的右子树为包含目标val的新右子树
root.left = self.insertIntoBST(root.left, val) # 递归创建左子树 root.right = self.insertIntoBST(root.right, val)
return root
# 返回更新后的以当前root为根节点的新树
return roo
``` ```
**递归法** - 无返回值 **递归法** - 无返回值
@ -328,7 +345,7 @@ class Solution:
return root return root
``` ```
-----
## Go ## Go
递归法 递归法
@ -374,7 +391,7 @@ func insertIntoBST(root *TreeNode, val int) *TreeNode {
return root return root
} }
``` ```
-----
## JavaScript ## JavaScript
有返回值的递归写法 有返回值的递归写法