Before:
+----+----+
list-->| 1 | / |
+----+----+
+----+----+ +----+----+ +----+----+
list2-> | 2 | +----> | 3 | +----> | 4 | / |
+----+----+ +----+----+ +----+----+
After:
+----+----+ +----+----+ +----+----+
list 1---->| 4 | +----> | 1 | +----> | 2 | / |
+----+----+ +----+----+ +----+----+
+----+----+
List2---->| 3 | / |
+----+----+
这就是我所拥有的:
list.next = list2.next.next // 4 -> 1
list = list2 // 4 -> 1 -> 4 -> 2 -> 3 -> 4
list2 = list.next.next.next.next // 3
list.next.next.next.next = null // 4 -> 1 -> 4 -> 2
不知道这样说对不对?我无法解决问题
最佳答案
@BetheGirly1,您好,欢迎来到 StackOverflow。 我想你问的是如何在Java中反转链表。
您可以将链接列表中的所有元素从列表中弹出,然后将它们插入堆栈,然后再次将它们弹出(只有当您知道列表只会很小时,这才会有好处)。
否则,您可以使用三个变量迭代(单一)链接列表。一个保存前一个 Node 值,一个保存当前值,一个保存下一个值,然后用前一个 Node 切换写入 Node 中的下一个值。
我的 Java 有点生疏(您确实将其标记为 Node.js,可能是无意的)。
// pass in the first node in the LinkedList, normally a LinkedList class knows the head.
public void reverse(Node head) {
Node previous = null;
Node current = head;
Node nextNode = null;
while (current.next != null) {
nextNode = current.next;
current.next = previous;
previous = current;
current = nextNode;
}
}
关于java - 如何使用 Java 中的几行代码将给定的 Before 链接转换为 After 链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58879007/