Data structures 如何列出节点&&;dummyNode有效吗?

Data structures 如何列出节点&&;dummyNode有效吗?,data-structures,linked-list,singly-linked-list,doubly-linked-list,Data Structures,Linked List,Singly Linked List,Doubly Linked List,您好,我很难理解ListNode和dummy node是如何工作的 假设我们被列为名单的头号人物。当我们声明ListNode dummy=head时,我们在代码的其余部分没有涉及dummy节点,而只是更改了节点头,我想知道为什么dummy节点仍然引用修改过的节点头?假设代码为: ReverseList(ListNode head){ ListNode dummy = head; while(head != null){ ... //we are not doing anything with d

您好,我很难理解ListNode和dummy node是如何工作的

假设我们被列为名单的头号人物。当我们声明ListNode dummy=head时,我们在代码的其余部分没有涉及dummy节点,而只是更改了节点头,我想知道为什么dummy节点仍然引用修改过的节点头?假设代码为:

ReverseList(ListNode head){
ListNode dummy = head;
while(head != null){
...
//we are not doing anything with dummy here
...
}
return dummy.next;
}
//if we change head, the dummy will also change(why?)

我真的很感激任何解释

因为指针就是这样工作的。。。这是家庭作业吗?简单地说,通过使用等于
=
赋值
运算符,您已经在一个可能的引用类型上使用了
dummy=head
。这本质上使dummy和head成为安全对象,因为它们指向相同的内存地址;int y=10;x=y;y=15;最终我的x是10,之后它并没有改变值,但是在listnode中,我们声明节点A=节点B,我们只改变了节点B,节点A也改变了,这是我不理解的一点