Java 我的项目需要一点帮助
我正在开发一个JAVA项目作为我的助手。在LinkedList类的一部分中,我学习了递归。有人能帮我写这个函数吗?问题是如何为LinkedList类编写一个递归实例方法,以LinkedList长度的倒序和长度打印链表实例(我猜是使用不同的两个函数)? 我的LinkedList类类似于:Java 我的项目需要一点帮助,java,recursion,Java,Recursion,我正在开发一个JAVA项目作为我的助手。在LinkedList类的一部分中,我学习了递归。有人能帮我写这个函数吗?问题是如何为LinkedList类编写一个递归实例方法,以LinkedList长度的倒序和长度打印链表实例(我猜是使用不同的两个函数)? 我的LinkedList类类似于: public class Node { public int data; public Node next; public Node (int data) { this.data = data; } } pub
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;
}
通常的方法是使用“current”列表元素(从第一个列表节点开始)调用遍历方法。该方法检查是否包含列表的最后一个元素。如果没有,则使用下一个元素递归调用该方法。然后打印出当前元素的值。将其添加到节点类:
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(")");
}
您应该尝试更改此代码以正常打印列表:)(这是一个非常简单的更改)
用于计算链表的长度
public static int length (LinkedList l)
{
if (l == null)
return 0;
else
return 1 + length(l.next);
}
好的,到目前为止你试过什么?您有什么具体的问题?如果您从一个算法开始,请求输入/帮助,而不是请求整个函数,这可能会有所帮助。@Oli我可以为这些问题编写任何代码,但我为其他问题编写了一些代码。我将要发布它,请您检查一下它是否为真。我认为在我的类中使用递归函数更好:)谢谢。你知道我的LinkedList递归方法的长度吗?它是printReverse方法的一个变体。您需要知道,列表的长度可以计算为尾部的长度(从头部开始的子列表)加上1:)。
public static int length (LinkedList l)
{
if (l == null)
return 0;
else
return 1 + length(l.next);
}