我的项目需要一些帮助

时间:2011-05-02 16:26:44

标签: java recursion

我正在开发一个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;
}

3 个答案:

答案 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)

通常的做法是使用“当前”列表元素(从第一个列表节点开始)调用遍历方法。该方法检查它是否具有列表的最后一个元素。如果没有,则使用下一个元素递归调用该方法。然后打印出当前元素的值。