链表:镜像
考虑以下整数单链表节点的私有(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/