|
9 | 9 |
|
10 | 10 | ## 19.删除链表的倒数第N个节点
|
11 | 11 |
|
12 | | -[力扣题目链接](https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/) |
| 12 | +[力扣题目链接](https://leetcode.cn/problems/remove-nth-node-from-end-of-list/) |
13 | 13 |
|
14 | 14 | 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。
|
15 | 15 |
|
@@ -289,6 +289,30 @@ func removeNthFromEnd(_ head: ListNode?, _ n: Int) -> ListNode? {
|
289 | 289 | return dummyHead.next
|
290 | 290 | }
|
291 | 291 | ```
|
| 292 | + |
| 293 | + |
| 294 | +PHP: |
| 295 | +```php |
| 296 | +function removeNthFromEnd($head, $n) { |
| 297 | + // 设置虚拟头节点 |
| 298 | + $dummyHead = new ListNode(); |
| 299 | + $dummyHead->next = $head; |
| 300 | + |
| 301 | + $slow = $fast = $dummyHead; |
| 302 | + while($n-- && $fast != null){ |
| 303 | + $fast = $fast->next; |
| 304 | + } |
| 305 | + // fast 再走一步,让 slow 指向删除节点的上一个节点 |
| 306 | + $fast = $fast->next; |
| 307 | + while ($fast != NULL) { |
| 308 | + $fast = $fast->next; |
| 309 | + $slow = $slow->next; |
| 310 | + } |
| 311 | + $slow->next = $slow->next->next; |
| 312 | + return $dummyHead->next; |
| 313 | + } |
| 314 | +``` |
| 315 | + |
292 | 316 | Scala:
|
293 | 317 | ```scala
|
294 | 318 | object Solution {
|
|
0 commit comments