回 帖 发 新 帖 刷新版面

主题:关于复制实例的问题.

public bool DelLast()
{
    try
    {
        ArrayList Temp = new ArrayList((char)0);//申请临时节点
        //找到最后的节点
        Temp = this;
        while (Temp.Nextnode != null)
        {
            Temp = Temp.Nextnode;
        }
        //--
        //欲将最后的节点释放,但是失败了.因为释放的是Temp而不是this里的节点
        Temp = null;
        return true;
    }
    catch
    {
        return false;
    }
}

一个链表类的删除尾节点方法.问题在注释那里.

回复列表 (共4个回复)

沙发

引用类型变量只有在所有引用都消除时,才有可能销毁。

你这里仅将Temp引用设为null,但实际上还有其它变量引用这个内存区域,所以不会被释放。

板凳

那如果我想彻底销毁,该怎么做呢?

3 楼

将链表中的内容用null替换或者改个算法

4 楼

如果链表只给表头,要是想找到最后一条不用一个临时变量如何实现呢?

另外,临时的一个TEMP节点,占内存空间吗?

我来回复

您尚未登录,请登录后再回复。点此登录或注册