【发布时间】:2016-10-08 23:25:13
【问题描述】:
我尝试在不递归的情况下打印反向链表并反转链表。我该怎么做?
问题:如何在不使用递归且不反转列表的情况下打印反向链表?
要求:没有多余的空格,不能反转链表,不能使用递归。
这里是链表Node的定义
class Node {
int value;
Node next;
public Node(int val) {
this.value = val;
}
}
这是我的 printReverseLinkedList 的递归版本:
public void printReverseList(Node head) {
Node temp = head;
if (temp.next != null) {
printReverseList(temp.next);
}
System.out.print(temp.value);
}
性能无所谓,因为我只想这样做。
【问题讨论】:
-
构建一个反向字符串?
-
不,这不是正确的方法。 @JornVernee
-
我认为应该是 temp != null,即只要头部不为空 While(temp != null)
-
性能重要吗?你可以在
O(n^2)中做到这一点,第一个指针是当前迭代的索引,第二个指针是记住之前迭代打印的索引元素。 -
在java中没有指针之类的东西
标签: java recursion linked-list iteration singly-linked-list