问答

为什么以下用php实现的链表尾插法,修改$temp变量会影响到$linkL

作者:admin 2021-06-17 我要评论

代码如下: ?phpclass Node{ public $data; public $next;}//创建一个链表$linkList = new Node();$linkList-next = null;$temp = $linkList;for ($i = 1; $i = ...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

代码如下:

<?php
class Node
{
    public $data;
    public $next;
}

//创建一个链表
$linkList = new Node();
$linkList->next = null;
$temp = $linkList;

for ($i = 1; $i <= 10; $i++) {
    $node = new Node();
    $node->data = "aaa{$i}";
    $node->next = null;

    $temp->next = $node;
    $temp = $node;
}
var_dump($linkList);
die;

我比较疑惑的问题是这行代码

$temp = $linkList;

按照我的理解,temp 这个变量应该只是 linkList 变量的拷贝而已,为什么我对 temp 变量的尾插会影响到 linkList 变量。其实也就是实现了对链表的尾插。### 题目描述

题目来源及自己的思路

相关代码

粘贴代码文本(请勿用截图)

你期待的结果是什么?实际看到的错误信息又是什么?

###

对象是引用的,是拷贝,但是是浅拷贝。

参考

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 有哪些免费轻量级的适用于日志收集与展

    有哪些免费轻量级的适用于日志收集与展

  • 怎么讲JS 对象的value 赋值到key,形成

    怎么讲JS 对象的value 赋值到key,形成

  • 延迟队列DelayQueue的getDelay()方法,

    延迟队列DelayQueue的getDelay()方法,

  • input file 写了 accept="image/*"

    input file 写了 accept="image/*"

腾讯云代理商
海外云服务器