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

时间:2018-01-21 04:24:17

标签: java linked-list

节点定义为

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;
}

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

head可能是您LinkedList课程的成员(您未展示)。它是Node对象的引用,是列表中的第一个对象。声明

head = something;

假设something也是Node引用,并将something的值分配给head。另一种说法是,something现在也指出head指向的任何内容。

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

head.next = something_else;

表示取something_else的值(也必须是Node引用),并将其分配给{{1}当前指向的节点的next成员}}