【力扣】19. 删除链表的倒数第 N 个结点

目录

方法: 双指针(PHP)

测试结果:

官方链接:


这里有一个 PHP 的知识点,PHP5以上的对象的赋值是类似于 “引用赋值” 的概念,修改一个对象内容时,另一个对象的内容也会跟着改变,而修改变量本身,是不会影响另一个对象的,说的不太清楚,可以参考下面的链接。

中文链接: 对象赋值在PHP中到底是不是引用? - 云+社区 - 腾讯云之前的文章中,我们说过变量赋值的问题,其中有一个问题是对象在进行变量赋值的时候,直接就是引用赋值。那么到底真实情况是怎样呢?https://cloud.tencent.com/developer/article/1557520英文链接: (链接定位到的内容为 User Contributed Notes )PHP: 基本概念 - Manualhttps://www.php.net/manual/zh/language.oop5.basic.php#79856

方法: 双指针(PHP)

/**
 * Definition for a singly-linked list.
 * class ListNode {
 *     public $val = 0;
 *     public $next = null;
 *     function __construct($val = 0, $next = null) {
 *         $this->val = $val;
 *         $this->next = $next;
 *     }
 * }
 */
class Solution {

    /**
     * @param ListNode $head
     * @param Integer $n
     * @return ListNode
     */
    function removeNthFromEnd($head, $n) {
        $temp = new ListNode(0, $head);
        $first = $head;
        $second = $temp;

        for ($i = 0; $i < $n; $i++) {
            $first = $first->next;
        }

        while ($first != null) {
            $first = $first->next;
            $second = $second->next;
        }

        $second->next = $second->next->next;
        return $temp->next;
        
    }
}

解释: 代码的一开始就在原对象 $head 的头结点再添加了一个头结点,形成 $temp 对象。之后将 $temp 对象“引用赋值”给 $second 对象,这时,他们拥有相同的句柄,意味着修改其中一个对象的成员变量,另一个对象的成员变量也会随之修改。但这并不同于 引用赋值,请注意。

测试结果:

执行用时:8 ms, 在所有 PHP 提交中击败了39.81%的用户

内存消耗:15.3 MB, 在所有 PHP 提交中击败了20.83%的用户

通过测试用例:208 / 208

官方链接:

力扣https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值