mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-06 23:28:29 +08:00
更新 019.删除链表的倒数第n个节点 排版格式修复
This commit is contained in:
@ -7,7 +7,7 @@
|
||||
|
||||
|
||||
|
||||
## 19.删除链表的倒数第N个节点
|
||||
# 19.删除链表的倒数第N个节点
|
||||
|
||||
[力扣题目链接](https://leetcode.cn/problems/remove-nth-node-from-end-of-list/)
|
||||
|
||||
@ -31,11 +31,13 @@
|
||||
输入:head = [1,2], n = 1
|
||||
输出:[1]
|
||||
|
||||
## 算法公开课
|
||||
|
||||
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html)::[链表遍历学清楚! | LeetCode:19.删除链表倒数第N个节点](https://www.bilibili.com/video/BV1vW4y1U7Gf),相信结合视频再看本篇题解,更有助于大家对链表的理解。**
|
||||
|
||||
|
||||
## 思路
|
||||
|
||||
《代码随想录》算法公开课:[链表遍历学清楚! | LeetCode:19.删除链表倒数第N个节点](https://www.bilibili.com/video/BV1vW4y1U7Gf),相信结合视频在看本篇题解,更有助于大家对链表的理解。
|
||||
|
||||
|
||||
双指针的经典应用,如果要删除倒数第n个节点,让fast移动n步,然后让fast和slow同时移动,直到fast指向链表末尾。删掉slow所指向的节点就可以了。
|
||||
|
||||
@ -93,7 +95,7 @@ public:
|
||||
|
||||
## 其他语言版本
|
||||
|
||||
java:
|
||||
### Java:
|
||||
|
||||
```java
|
||||
public ListNode removeNthFromEnd(ListNode head, int n){
|
||||
@ -120,7 +122,8 @@ public ListNode removeNthFromEnd(ListNode head, int n){
|
||||
}
|
||||
```
|
||||
|
||||
Python:
|
||||
### Python:
|
||||
|
||||
```python
|
||||
# Definition for singly-linked list.
|
||||
# class ListNode:
|
||||
@ -151,7 +154,8 @@ class Solution:
|
||||
return dummy_head.next
|
||||
|
||||
```
|
||||
Go:
|
||||
### Go:
|
||||
|
||||
```Go
|
||||
/**
|
||||
* Definition for singly-linked list.
|
||||
@ -178,7 +182,7 @@ func removeNthFromEnd(head *ListNode, n int) *ListNode {
|
||||
}
|
||||
```
|
||||
|
||||
JavaScript:
|
||||
### JavaScript:
|
||||
|
||||
```js
|
||||
/**
|
||||
@ -198,7 +202,7 @@ var removeNthFromEnd = function(head, n) {
|
||||
return ret.next;
|
||||
};
|
||||
```
|
||||
TypeScript:
|
||||
### TypeScript:
|
||||
|
||||
版本一(快慢指针法):
|
||||
|
||||
@ -263,7 +267,7 @@ function removeNthFromEnd(head: ListNode | null, n: number): ListNode | null {
|
||||
};
|
||||
```
|
||||
|
||||
Kotlin:
|
||||
### Kotlin:
|
||||
|
||||
```Kotlin
|
||||
fun removeNthFromEnd(head: ListNode?, n: Int): ListNode? {
|
||||
@ -284,7 +288,8 @@ fun removeNthFromEnd(head: ListNode?, n: Int): ListNode? {
|
||||
}
|
||||
```
|
||||
|
||||
Swift:
|
||||
### Swift:
|
||||
|
||||
```swift
|
||||
func removeNthFromEnd(_ head: ListNode?, _ n: Int) -> ListNode? {
|
||||
if head == nil {
|
||||
@ -309,8 +314,8 @@ func removeNthFromEnd(_ head: ListNode?, _ n: Int) -> ListNode? {
|
||||
}
|
||||
```
|
||||
|
||||
### PHP:
|
||||
|
||||
PHP:
|
||||
```php
|
||||
function removeNthFromEnd($head, $n) {
|
||||
// 设置虚拟头节点
|
||||
@ -332,7 +337,8 @@ function removeNthFromEnd($head, $n) {
|
||||
}
|
||||
```
|
||||
|
||||
Scala:
|
||||
### Scala:
|
||||
|
||||
```scala
|
||||
object Solution {
|
||||
def removeNthFromEnd(head: ListNode, n: Int): ListNode = {
|
||||
@ -356,7 +362,8 @@ object Solution {
|
||||
}
|
||||
```
|
||||
|
||||
Rust:
|
||||
### Rust:
|
||||
|
||||
```rust
|
||||
impl Solution {
|
||||
pub fn remove_nth_from_end(head: Option<Box<ListNode>>, mut n: i32) -> Option<Box<ListNode>> {
|
||||
@ -377,7 +384,8 @@ impl Solution {
|
||||
}
|
||||
}
|
||||
```
|
||||
C语言
|
||||
### C:
|
||||
|
||||
```c
|
||||
/**c语言单链表的定义
|
||||
* Definition for singly-linked list.
|
||||
@ -412,7 +420,8 @@ struct ListNode* removeNthFromEnd(struct ListNode* head, int n) {
|
||||
|
||||
```
|
||||
|
||||
C#:
|
||||
### C#:
|
||||
|
||||
```csharp
|
||||
public class Solution {
|
||||
public ListNode RemoveNthFromEnd(ListNode head, int n) {
|
||||
|
Reference in New Issue
Block a user