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

标签 java node.js linked-list

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/

相关文章:

java - 我想引用在不同方法中定义的内部类中的非最终变量

java - 使用 jtwitter 和 SignpostClient 的永久 twitter oauth

java - 如何使用 "equals"为泛型实现 "instanceof"方法?

javascript - 如何在 javascript 中拦截 "in"运算符?

java - Mockito ArgumentCaptor 在验证时不返回任何值

node.js - Azure 机器人应用程序在修改后不会更新

node.js - Loopback 远程 Hook 中的下一个参数是什么?

检查链表是否循环

c++ - 递归函数,将链表的末尾附加到另一个链表的开头,并返回指向新列表开头的指针

java - 根据用户输入以不同方式对 java 中的链表进行排序时遇到问题