mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-06 23:28:29 +08:00
更新 0104.二叉树的最大深度 排版格式修复
This commit is contained in:
@ -5,6 +5,7 @@
|
|||||||
<p align="center"><strong><a href="https://mp.weixin.qq.com/s/tqCxrMEU-ajQumL1i8im9A">参与本项目</a>,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们收益!</strong></p>
|
<p align="center"><strong><a href="https://mp.weixin.qq.com/s/tqCxrMEU-ajQumL1i8im9A">参与本项目</a>,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们收益!</strong></p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# 104.二叉树的最大深度
|
# 104.二叉树的最大深度
|
||||||
|
|
||||||
[力扣题目链接](https://leetcode.cn/problems/maximum-depth-of-binary-tree/)
|
[力扣题目链接](https://leetcode.cn/problems/maximum-depth-of-binary-tree/)
|
||||||
@ -23,17 +24,19 @@
|
|||||||
|
|
||||||
返回它的最大深度 3 。
|
返回它的最大深度 3 。
|
||||||
|
|
||||||
# 思路
|
## 算法公开课
|
||||||
|
|
||||||
|
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html):[二叉树的高度和深度有啥区别?究竟用什么遍历顺序?很多录友搞不懂 | 104.二叉树的最大深度](https://www.bilibili.com/video/BV1Gd4y1V75u),相信结合视频再看本篇题解,更有助于大家对本题的理解**。
|
||||||
|
|
||||||
|
## 思路
|
||||||
|
|
||||||
看完本篇可以一起做了如下两道题目:
|
看完本篇可以一起做了如下两道题目:
|
||||||
|
|
||||||
* 104.二叉树的最大深度
|
* [104.二叉树的最大深度](https://leetcode.cn/problems/maximum-depth-of-binary-tree/)
|
||||||
* 559.n叉树的最大深度
|
* [559.n叉树的最大深度](https://leetcode.cn/problems/maximum-depth-of-n-ary-tree/)
|
||||||
|
|
||||||
《代码随想录》算法视频公开课:[二叉树的高度和深度有啥区别?究竟用什么遍历顺序?很多录友搞不懂 | 104.二叉树的最大深度](https://www.bilibili.com/video/BV1Gd4y1V75u),相信结合视频在看本篇题解,更有助于大家对本题的理解。
|
|
||||||
|
|
||||||
|
|
||||||
## 递归法
|
### 递归法
|
||||||
|
|
||||||
本题可以使用前序(中左右),也可以使用后序遍历(左右中),使用前序求的就是深度,使用后序求的是高度。
|
本题可以使用前序(中左右),也可以使用后序遍历(左右中),使用前序求的就是深度,使用后序求的是高度。
|
||||||
|
|
||||||
@ -164,7 +167,7 @@ public:
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
## 迭代法
|
### 迭代法
|
||||||
|
|
||||||
使用迭代法的话,使用层序遍历是最为合适的,因为最大的深度就是二叉树的层数,和层序遍历的方式极其吻合。
|
使用迭代法的话,使用层序遍历是最为合适的,因为最大的深度就是二叉树的层数,和层序遍历的方式极其吻合。
|
||||||
|
|
||||||
@ -202,10 +205,11 @@ public:
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
那么我们可以顺便解决一下n叉树的最大深度问题
|
那么我们可以顺便解决一下n叉树的最大深度问题
|
||||||
|
|
||||||
# 559.n叉树的最大深度
|
## 相关题目推荐
|
||||||
|
|
||||||
|
### 559.n叉树的最大深度
|
||||||
|
|
||||||
[力扣题目链接](https://leetcode.cn/problems/maximum-depth-of-n-ary-tree/)
|
[力扣题目链接](https://leetcode.cn/problems/maximum-depth-of-n-ary-tree/)
|
||||||
|
|
||||||
@ -219,11 +223,11 @@ public:
|
|||||||
|
|
||||||
我们应返回其最大深度,3。
|
我们应返回其最大深度,3。
|
||||||
|
|
||||||
思路:
|
### 思路
|
||||||
|
|
||||||
依然可以提供递归法和迭代法,来解决这个问题,思路是和二叉树思路一样的,直接给出代码如下:
|
依然可以提供递归法和迭代法,来解决这个问题,思路是和二叉树思路一样的,直接给出代码如下:
|
||||||
|
|
||||||
## 递归法
|
#### 递归法
|
||||||
|
|
||||||
c++代码:
|
c++代码:
|
||||||
|
|
||||||
@ -240,7 +244,7 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
```
|
```
|
||||||
## 迭代法
|
#### 迭代法
|
||||||
|
|
||||||
依然是层序遍历,代码如下:
|
依然是层序遍历,代码如下:
|
||||||
|
|
||||||
@ -267,11 +271,11 @@ public:
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
# 其他语言版本
|
## 其他语言版本
|
||||||
|
|
||||||
## java
|
### Java:
|
||||||
|
|
||||||
### 104.二叉树的最大深度
|
104.二叉树的最大深度
|
||||||
|
|
||||||
```java
|
```java
|
||||||
class solution {
|
class solution {
|
||||||
@ -344,7 +348,8 @@ class solution {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### 559.n叉树的最大深度
|
559.n叉树的最大深度
|
||||||
|
|
||||||
```java
|
```java
|
||||||
class Solution {
|
class Solution {
|
||||||
/*递归法,后序遍历求root节点的高度*/
|
/*递归法,后序遍历求root节点的高度*/
|
||||||
@ -391,9 +396,9 @@ class solution {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## python
|
### Python :
|
||||||
|
|
||||||
### 104.二叉树的最大深度
|
104.二叉树的最大深度
|
||||||
|
|
||||||
递归法:
|
递归法:
|
||||||
```python
|
```python
|
||||||
@ -448,7 +453,7 @@ class Solution:
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### 559.n叉树的最大深度
|
559.n叉树的最大深度
|
||||||
|
|
||||||
递归法:
|
递归法:
|
||||||
```python
|
```python
|
||||||
@ -522,9 +527,10 @@ class Solution:
|
|||||||
return max_depth
|
return max_depth
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Go:
|
||||||
|
|
||||||
|
104.二叉树的最大深度
|
||||||
|
|
||||||
## go
|
|
||||||
### 104.二叉树的最大深度
|
|
||||||
```go
|
```go
|
||||||
/**
|
/**
|
||||||
* definition for a binary tree node.
|
* definition for a binary tree node.
|
||||||
@ -574,7 +580,7 @@ func maxdepth(root *treenode) int {
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### 559. n叉树的最大深度
|
559. n叉树的最大深度
|
||||||
|
|
||||||
```go
|
```go
|
||||||
func maxDepth(root *Node) int {
|
func maxDepth(root *Node) int {
|
||||||
@ -598,9 +604,9 @@ func maxDepth(root *Node) int {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## javascript
|
### Javascript :
|
||||||
|
|
||||||
### 104.二叉树的最大深度
|
104.二叉树的最大深度
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
var maxdepth = function(root) {
|
var maxdepth = function(root) {
|
||||||
@ -649,7 +655,7 @@ var maxDepth = function(root) {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
### 559.n叉树的最大深度
|
559.n叉树的最大深度
|
||||||
|
|
||||||
N叉树的最大深度 递归写法
|
N叉树的最大深度 递归写法
|
||||||
```js
|
```js
|
||||||
@ -683,9 +689,9 @@ var maxDepth = function(root) {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
## TypeScript
|
### TypeScript:
|
||||||
|
|
||||||
### 104.二叉树的最大深度
|
104.二叉树的最大深度
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
// 后续遍历(自下而上)
|
// 后续遍历(自下而上)
|
||||||
@ -728,7 +734,7 @@ function maxDepth(root: TreeNode | null): number {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
### 559.n叉树的最大深度
|
559.n叉树的最大深度
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
// 后续遍历(自下而上)
|
// 后续遍历(自下而上)
|
||||||
@ -756,9 +762,9 @@ function maxDepth(root: TreeNode | null): number {
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## C
|
### C:
|
||||||
|
|
||||||
### 104.二叉树的最大深度
|
104.二叉树的最大深度
|
||||||
|
|
||||||
二叉树最大深度递归
|
二叉树最大深度递归
|
||||||
```c
|
```c
|
||||||
@ -814,9 +820,9 @@ int maxDepth(struct TreeNode* root){
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## Swift
|
### Swift:
|
||||||
|
|
||||||
### 104.二叉树的最大深度
|
104.二叉树的最大深度
|
||||||
|
|
||||||
```swift
|
```swift
|
||||||
// 递归 - 后序
|
// 递归 - 后序
|
||||||
@ -856,7 +862,7 @@ func maxDepth(_ root: TreeNode?) -> Int {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### 559.n叉树的最大深度
|
559.n叉树的最大深度
|
||||||
|
|
||||||
```swift
|
```swift
|
||||||
// 递归
|
// 递归
|
||||||
@ -893,9 +899,10 @@ func maxDepth1(_ root: Node?) -> Int {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## Scala
|
### Scala:
|
||||||
|
|
||||||
|
104.二叉树的最大深度
|
||||||
|
|
||||||
### 104.二叉树的最大深度
|
|
||||||
递归法:
|
递归法:
|
||||||
```scala
|
```scala
|
||||||
object Solution {
|
object Solution {
|
||||||
@ -934,7 +941,7 @@ object Solution {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### 559.n叉树的最大深度
|
559.n叉树的最大深度
|
||||||
|
|
||||||
递归法:
|
递归法:
|
||||||
```scala
|
```scala
|
||||||
@ -972,8 +979,8 @@ object Solution {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## rust
|
### Rust:
|
||||||
### 0104.二叉树的最大深度
|
0104.二叉树的最大深度
|
||||||
|
|
||||||
递归:
|
递归:
|
||||||
```rust
|
```rust
|
||||||
|
Reference in New Issue
Block a user