mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-07 15:45:40 +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/)
|
[力扣题目链接](https://leetcode.cn/problems/remove-nth-node-from-end-of-list/)
|
||||||
|
|
||||||
@ -31,11 +31,13 @@
|
|||||||
输入:head = [1,2], n = 1
|
输入:head = [1,2], n = 1
|
||||||
输出:[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所指向的节点就可以了。
|
双指针的经典应用,如果要删除倒数第n个节点,让fast移动n步,然后让fast和slow同时移动,直到fast指向链表末尾。删掉slow所指向的节点就可以了。
|
||||||
|
|
||||||
@ -93,7 +95,7 @@ public:
|
|||||||
|
|
||||||
## 其他语言版本
|
## 其他语言版本
|
||||||
|
|
||||||
java:
|
### Java:
|
||||||
|
|
||||||
```java
|
```java
|
||||||
public ListNode removeNthFromEnd(ListNode head, int n){
|
public ListNode removeNthFromEnd(ListNode head, int n){
|
||||||
@ -120,7 +122,8 @@ public ListNode removeNthFromEnd(ListNode head, int n){
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Python:
|
### Python:
|
||||||
|
|
||||||
```python
|
```python
|
||||||
# Definition for singly-linked list.
|
# Definition for singly-linked list.
|
||||||
# class ListNode:
|
# class ListNode:
|
||||||
@ -151,7 +154,8 @@ class Solution:
|
|||||||
return dummy_head.next
|
return dummy_head.next
|
||||||
|
|
||||||
```
|
```
|
||||||
Go:
|
### Go:
|
||||||
|
|
||||||
```Go
|
```Go
|
||||||
/**
|
/**
|
||||||
* Definition for singly-linked list.
|
* Definition for singly-linked list.
|
||||||
@ -178,7 +182,7 @@ func removeNthFromEnd(head *ListNode, n int) *ListNode {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
JavaScript:
|
### JavaScript:
|
||||||
|
|
||||||
```js
|
```js
|
||||||
/**
|
/**
|
||||||
@ -198,7 +202,7 @@ var removeNthFromEnd = function(head, n) {
|
|||||||
return ret.next;
|
return ret.next;
|
||||||
};
|
};
|
||||||
```
|
```
|
||||||
TypeScript:
|
### TypeScript:
|
||||||
|
|
||||||
版本一(快慢指针法):
|
版本一(快慢指针法):
|
||||||
|
|
||||||
@ -263,7 +267,7 @@ function removeNthFromEnd(head: ListNode | null, n: number): ListNode | null {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
Kotlin:
|
### Kotlin:
|
||||||
|
|
||||||
```Kotlin
|
```Kotlin
|
||||||
fun removeNthFromEnd(head: ListNode?, n: Int): ListNode? {
|
fun removeNthFromEnd(head: ListNode?, n: Int): ListNode? {
|
||||||
@ -284,7 +288,8 @@ fun removeNthFromEnd(head: ListNode?, n: Int): ListNode? {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Swift:
|
### Swift:
|
||||||
|
|
||||||
```swift
|
```swift
|
||||||
func removeNthFromEnd(_ head: ListNode?, _ n: Int) -> ListNode? {
|
func removeNthFromEnd(_ head: ListNode?, _ n: Int) -> ListNode? {
|
||||||
if head == nil {
|
if head == nil {
|
||||||
@ -309,8 +314,8 @@ func removeNthFromEnd(_ head: ListNode?, _ n: Int) -> ListNode? {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### PHP:
|
||||||
|
|
||||||
PHP:
|
|
||||||
```php
|
```php
|
||||||
function removeNthFromEnd($head, $n) {
|
function removeNthFromEnd($head, $n) {
|
||||||
// 设置虚拟头节点
|
// 设置虚拟头节点
|
||||||
@ -332,7 +337,8 @@ function removeNthFromEnd($head, $n) {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Scala:
|
### Scala:
|
||||||
|
|
||||||
```scala
|
```scala
|
||||||
object Solution {
|
object Solution {
|
||||||
def removeNthFromEnd(head: ListNode, n: Int): ListNode = {
|
def removeNthFromEnd(head: ListNode, n: Int): ListNode = {
|
||||||
@ -356,7 +362,8 @@ object Solution {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Rust:
|
### Rust:
|
||||||
|
|
||||||
```rust
|
```rust
|
||||||
impl Solution {
|
impl Solution {
|
||||||
pub fn remove_nth_from_end(head: Option<Box<ListNode>>, mut n: i32) -> Option<Box<ListNode>> {
|
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
|
||||||
/**c语言单链表的定义
|
/**c语言单链表的定义
|
||||||
* Definition for singly-linked list.
|
* Definition for singly-linked list.
|
||||||
@ -412,7 +420,8 @@ struct ListNode* removeNthFromEnd(struct ListNode* head, int n) {
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
C#:
|
### C#:
|
||||||
|
|
||||||
```csharp
|
```csharp
|
||||||
public class Solution {
|
public class Solution {
|
||||||
public ListNode RemoveNthFromEnd(ListNode head, int n) {
|
public ListNode RemoveNthFromEnd(ListNode head, int n) {
|
||||||
|
Reference in New Issue
Block a user