如何使用Java中的几行代码将给定的Before链接转换为After链接


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

我不知道这是否正确?我很难弄清楚的问题

Hi@BethGirly1欢迎来到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;
}
}

相关内容

  • 没有找到相关文章

最新更新