我正在开发一个JAVA项目作为我的分配。在LinkedList类的一部分中,我坚持递归。任何人都可以帮我写这个功能吗?问题是如何为LinkedList类编写一个递归实例方法,该方法以相反的顺序打印链表实例,以及LinkedList长度的长度(我猜有不同的两个函数)? 我的LinkedList类就像:
public class Node
{
public int data;
public Node next;
public Node (int data)
{
this.data = data;
}
}
public class LinkedList
{
private Node first;
public LinkedList
{
first = null;
}
}
对于ex,这是我对LinkedList
的插入递归方法private void insertRec(Node n, int data)
{
if(n == null)
{
Node newNode = new Node(data);
return newNode;
}
if(data > n.data)
n.next = insertRec(n.next,data);
return n;
}
答案 0 :(得分:1)
将其添加到Node类:
public void printReverse() {
if ( next != null ) {
next.printReverse();
}
System.out.println(data);
}
这是LinkedList
类:
print void printReverse() {
System.out.println("(");
if ( first == null ) {
first.printReverse();
}
System.out.println(")");
}
您应该尝试更改此代码以正常打印列表:)(这是一个非常简单的更改)。
答案 1 :(得分:1)
public static void reversePrint (LinkedList l)
{
if (l != null) {
reversePrint(l.next);
System.out.println(l.value);
}
}
用于计算链表的长度
public static int length (LinkedList l)
{
if (l == null)
return 0;
else
return 1 + length(l.next);
}
答案 2 :(得分:0)
通常的做法是使用“当前”列表元素(从第一个列表节点开始)调用遍历方法。该方法检查它是否具有列表的最后一个元素。如果没有,则使用下一个元素递归调用该方法。然后打印出当前元素的值。