在链接列表中head = something之间的区别是什么?和head.next =某事; [关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在链接列表中head = something之间的区别是什么?和head.next =某事; [关闭]相关的知识,希望对你有一定的参考价值。

节点定义为

class Node {
    int data;
    Node next;
}

Node RemoveDuplicates(Node head) {

    Node temp=head;
    while(temp.next!=null){
        if(temp.data == temp.next.data){
            temp.next=temp.next.next;
        } else { 
            System.out.println(temp.data);
            temp=temp.next;
        }
    }
    return head;
}
答案

head是列表中的第一个值,而head.next是第二个值。

例如,如果我的列表是1->2->3我的头将是1而我的head.next将是2.所以分配head = 5会将列表转换为5->2->3这与分配head.next = 5不同,后者会将列表更改为1->5->3

另一答案

head大概是你的LinkedList班的成员(你没有展示)。它是对Node对象的引用,head = something; 对象是列表中的第一个对象。该声明

something

假设Node也是something参考,并且它将head的值赋予something。另一种说法是,无论head指向的是head.next现在也指出了什么。

表达式Node意味着查看head指向的next并返回Node成员的值(这也是head.next = something_else; 参考)。在作业的左侧,如

something_else

它意味着取Node的值(也必须是next引用),并将其分配给head当前指向的节点的qazxswpoi成员。

以上是关于在链接列表中head = something之间的区别是什么?和head.next =某事; [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

从链接列表中删除节点无法正常工作

编程访谈中的错误暴露:链接列表

列表<? extends Something > 生成而不是 List<Something>

Class.forName("Something") 和 Class.forName("Something").newInstance() 之间的区别; [复制

单插入多读取列表是否安全无锁?

sh sed命令删除文件之间的所有东西,包括`something`