交换java中链表的方法,其值发生变化

时间:2013-10-09 17:34:26

标签: java list data-structures linked-list

我正在编写一个方法来交换链表中的相邻值,而我对于将值设置为彼此时会发生什么感到困惑。例如,假设我有一个链表,我想交换索引4和5的元素(比如列表有10个元素)。 如果我使用代码:

Node tempAt = getNode(4);
Node tempPost = getNode(5);
getNode(3).next = tempPost;
tempAt.next = tempPost.next;
tempPost.next = getNode(3);

这有用吗?基本上,我混淆了变量。当您将一个节点设置为等于另一个节点时(例如:Node temp = listHead),temp是否与节点listHead基本相同?如果我修改listHead,那么temp也会被修改吗? 编辑: 另外,如果我创建的内容如下:Node temp = listHead,然后更改listHead.next的值,那么temp.next的值是多少?

1 个答案:

答案 0 :(得分:0)

在您的修改中,Node temp = listHeadtemp是一个保存listHead值的变量。 listHead有一个名为next的字段,它也是一个将值保存到另一个节点的变量。当您更改listHead.next时,您要更改对象next中字段listHead的值,而temp的值仍然是对象listHead,所以当你说temp.next时,它等于listHead.next

如果您想了解更多关于Java如何通过值传递的信息,可以阅读this article