mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-06 07:06:42 +08:00
Merge pull request #2861 from chengxuanfu/master
添加19.删除链表的倒数第N个节点,添加了java方法使用递归的方法删除倒数第N个节点
This commit is contained in:
@ -129,6 +129,36 @@ class Solution {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
```java
|
||||||
|
class Solution {
|
||||||
|
public ListNode removeNthFromEnd(ListNode head, int n) {
|
||||||
|
// 创建一个新的哑节点,指向原链表头
|
||||||
|
ListNode s = new ListNode(-1, head);
|
||||||
|
// 递归调用remove方法,从哑节点开始进行删除操作
|
||||||
|
remove(s, n);
|
||||||
|
// 返回新链表的头(去掉可能的哑节点)
|
||||||
|
return s.next;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int remove(ListNode p, int n) {
|
||||||
|
// 递归结束条件:如果当前节点为空,返回0
|
||||||
|
if (p == null) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
// 递归深入到下一个节点
|
||||||
|
int net = remove(p.next, n);
|
||||||
|
// 如果当前节点是倒数第n个节点,进行删除操作
|
||||||
|
if (net == n) {
|
||||||
|
p.next = p.next.next;
|
||||||
|
}
|
||||||
|
// 返回当前节点的总深度
|
||||||
|
return net + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
### Python:
|
### Python:
|
||||||
|
|
||||||
```python
|
```python
|
||||||
|
Reference in New Issue
Block a user