java - 如何使用java中的一到两行代码将给定的Before链接转换为After链接?

标签 java linked-list

Before:
           +----+----+    +----+----+
list ----> |  1 |  +----> |  2 |  / |
           +----+----+    +----+----+
           +----+----+    +----+----+
temp ----> |  3 |  +----> |  4 |  / |
           +----+----+    +----+----+
After:
           +----+----+    +----+----+    +----+----+    +----+----+
list ----> |  1 |  +----> |  3 |  +----> |  4 |  +- --> |  2 |  / 
           +----+----+    +----+----+    +----+----+    +----+----+

这就是我到目前为止所拥有的......

List.next = temp;
Temp.next = list.next.next;

我不明白使用 .next.next.next 的概念。

任何帮助将不胜感激!

最佳答案

一般来说,变量(例如list)指的是第一个“节点”。因此 list 的值为 1list.next 的值为 2

当您执行list.next = temp;时,这是正确的,但是您应该首先确保您拥有对该值的引用2,因为一旦将 list.next 的值重置为 temp,您将丢失引用。您可以通过创建另一个变量 x 并将其设置为等于 list.next (2) 来解决此问题。

然后,当您调用 list.next = temp; 时,您将得到以下结果:

           +----+----+
  x  ----> |  2 |  / |
           +----+----+          

           +----+----+    +----+----+    +----+----+
list ----> |  1 |  +----> |  3 |  +----> |  4 |  / 
           +----+----+    +----+----+    +----+----+

之后,您可以使用 .next 表示法来获取对 4 值节点的引用,并将其设置为等于 x (list.next.next.next = x;)。

多次使用 .next 可能会有点笨拙,因此如果它对您来说更有意义,您可以简单地创建一个新变量并将其设置为 list.next,重复直到获得所需节点的引用(例如 y = list.next; (3)、y = y.next; (4))。

关于java - 如何使用java中的一到两行代码将给定的Before链接转换为After链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58842245/

相关文章:

java - 使用 codehaus jaxws-maven-plugin 重命名 JAX-WS 服务类的正确方法是什么?

java - 在 linux lubuntu 上调用任何 java.nio 方法时没有遇到这样的方法异常

java - 在 Android 中使用 ProGuard

java - 在java中有两种创建对象的方法吗?

java - 在Java中反转链表而不改变原始链表

c - 从链表中删除节点

java - 向一点移动时的圆碰撞 react

linked-list - 链表中 "next"指针的惯用生命周期是多少?

c - 如何从链表中删除重复的奇数?

c++ - 用双链表实现的堆栈的一个错误