反转链表 #
题目 #
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
示例 1:
```shell
输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]
```
示例 2:
```shell
输入:head = [1,2]
输出:[2,1]
```
示例 3:
```shell
输入:head = []
输出:[]
```
提示:
```shell
链表中节点的数目范围是 [0, 5000]
-5000 <= Node.val <= 5000
```
进阶:链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?
Given the head of a singly linked list, reverse the list, and return the reversed list.
Example 1:
```
Input: head = [1,2,3,4,5]
Output: [5,4,3,2,1]
```
Example 2:
```
Input: head = [1,2]
Output: [2,1]
```
Example 3:
```
Input: head = []
Output: []
```
Constraints:
```
The number of nodes in the list is the range [0, 5000].
-5000 <= Node.val <= 5000
```
Follow up: A linked list can be reversed either iteratively or recursively. Could you implement both?
分析 #
题解 #
---
```c
```
---
```c++
```
---
```c#
```
---
```go
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func reverseList(head *ListNode) *ListNode {
var pre *ListNode = nil
var next *ListNode = nil
var cur *ListNode = head
for cur != nil {
next = cur.Next
cur.Next = pre
pre = cur
cur = next
}
return pre
}
```
---
```java
```
---
```javascript
```
---
```kotlin
```
---
```php
```
---
```python
```
---
```python
```
---
```ruby
```
---
```rust
```
---
```scala
```
---
```swift
```
---
叶王 © 2013-2024 版权所有。如果本文档对你有所帮助,可以请作者喝饮料。