mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2026-02-02 18:39:09 +08:00
Update
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
<p align="center"><strong>欢迎大家<a href="https://mp.weixin.qq.com/s/tqCxrMEU-ajQumL1i8im9A">参与本项目</a>,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们收益!</strong></p>
|
||||
|
||||
|
||||
## 701.二叉搜索树中的插入操作
|
||||
# 701.二叉搜索树中的插入操作
|
||||
|
||||
[力扣题目链接](https://leetcode-cn.com/problems/insert-into-a-binary-search-tree/)
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
* -10^8 <= val <= 10^8
|
||||
* 新值和原始二叉搜索树中的任意节点值都不同
|
||||
|
||||
## 思路
|
||||
# 思路
|
||||
|
||||
其实这道题目其实是一道简单题目,**但是题目中的提示:有多种有效的插入方式,还可以重构二叉搜索树,一下子吓退了不少人**,瞬间感觉题目复杂了很多。
|
||||
|
||||
@@ -195,7 +195,7 @@ public:
|
||||
};
|
||||
```
|
||||
|
||||
## 总结
|
||||
# 总结
|
||||
|
||||
首先在二叉搜索树中的插入操作,大家不用恐惧其重构搜索树,其实根本不用重构。
|
||||
|
||||
@@ -204,9 +204,10 @@ public:
|
||||
最后依然给出了迭代的方法,迭代的方法就需要记录当前遍历节点的父节点了,这个和没有返回值的递归函数实现的代码逻辑是一样的。
|
||||
|
||||
|
||||
## 其他语言版本
|
||||
# 其他语言版本
|
||||
|
||||
## Java
|
||||
|
||||
Java:
|
||||
```java
|
||||
class Solution {
|
||||
public TreeNode insertIntoBST(TreeNode root, int val) {
|
||||
@@ -253,7 +254,7 @@ class Solution {
|
||||
}
|
||||
```
|
||||
|
||||
Python:
|
||||
## Python
|
||||
|
||||
**递归法** - 有返回值
|
||||
|
||||
@@ -267,7 +268,8 @@ class Solution:
|
||||
if root.val > val:
|
||||
root.left = self.insertIntoBST(root.left, val) # 递归创建左子树
|
||||
return root
|
||||
```
|
||||
```
|
||||
|
||||
**递归法** - 无返回值
|
||||
```python
|
||||
class Solution:
|
||||
@@ -294,7 +296,8 @@ class Solution:
|
||||
return
|
||||
__traverse(root, val)
|
||||
return root
|
||||
```
|
||||
```
|
||||
|
||||
**迭代法**
|
||||
与无返回值的递归函数的思路大体一致
|
||||
```python
|
||||
@@ -326,7 +329,7 @@ class Solution:
|
||||
|
||||
```
|
||||
|
||||
Go:
|
||||
## Go
|
||||
|
||||
递归法
|
||||
|
||||
@@ -343,8 +346,10 @@ func insertIntoBST(root *TreeNode, val int) *TreeNode {
|
||||
}
|
||||
return root
|
||||
}
|
||||
```
|
||||
迭代法
|
||||
```
|
||||
|
||||
迭代法
|
||||
|
||||
```go
|
||||
func insertIntoBST(root *TreeNode, val int) *TreeNode {
|
||||
if root == nil {
|
||||
@@ -370,9 +375,9 @@ func insertIntoBST(root *TreeNode, val int) *TreeNode {
|
||||
}
|
||||
```
|
||||
|
||||
JavaScript版本
|
||||
## JavaScript
|
||||
|
||||
> 有返回值的递归写法
|
||||
有返回值的递归写法
|
||||
|
||||
```javascript
|
||||
/**
|
||||
@@ -404,7 +409,7 @@ var insertIntoBST = function (root, val) {
|
||||
};
|
||||
```
|
||||
|
||||
> 无返回值的递归
|
||||
无返回值的递归
|
||||
|
||||
```javascript
|
||||
/**
|
||||
@@ -444,7 +449,7 @@ var insertIntoBST = function (root, val) {
|
||||
};
|
||||
```
|
||||
|
||||
> 迭代
|
||||
迭代
|
||||
|
||||
```javascript
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user