java - Java中创建镜像链表

标签 java linked-list data-structures

链表:镜像

考虑以下整数单链表节点的私有(private)类:

private class Node{
public int value;
public Node next;
}

一个名为 ListImpl 的包装类包含一个名为 start 的指针,指向 a 的第一个节点 Node的链表。

为 ListImpl 编写一个实例方法,其签名为:

public void mirror();

这会创建 start 指向的链表的反向副本并附加该副本 到列表末尾。因此,例如列表:

开始 1 2 3

调用镜像后,变为:

开始 1 2 3 3 2 1

注意:在你的答案中,你不需要为 ListImpl 定义类的其余部分 镜像法。

最佳答案

public void mirror() {
    if (start != null) {
        Node prev = null;
        Node p = start;
        Node q = null;
        while (p != null) {
            Node n = new Node();
            n.value = p.value;
            n.next = q;
            q = n;
            prev = p;
            p = p.next;
        }
        prev.next = q;
    }
}

关于java - Java中创建镜像链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2642853/

相关文章:

java - 调整元素的大小和位置

java.lang.NoClassDefFoundError : when trying to run jar 错误

c++ - 链表显示乱码

java - 检查Java netbeans数据库中存在的用户名

java - Java中最快的子串搜索方法是什么

c - "Access violation writing location"链表错误

c - 链表: trying to change index of node

java - 查找运行时间为 O(1) 的最小数字 - java

c++ - 大型、偶尔拼接列表的数据结构选择

language-agnostic - 高度图的最佳数据结构