【问题标题】:Recursive Logic for Linked List in JavaJava中链表的递归逻辑
【发布时间】:2018-04-14 16:48:44
【问题描述】:

我正在尝试找到一种方法来编写一个带有递归逻辑的 java 程序,用于插入、搜索和遍历单链表。但是,当我的头节点是私有的时,我不知道该怎么做。这是我写的一段代码:

class Node {
    int data;
    Node next;
}
public class SingleList {
    private Node head;

    public SingleList() {
        head = null;
    }
    void insert(Node temp, int num, int n) {
        //Suggest some code here
    }

    boolean search(Node temp, int num) {
        //Suggest some code here
    }
    void traverse(Node temp) {
        //Suggest some code here
    }
}

【问题讨论】:

  • 节点是私有的,但是方法是类的一部分,所以它们可以访问它的私有成员。那么有什么问题呢?
  • 第一次进入函数时如何将头部作为参数传递?我将需要该参数进行进一步的递归。
  • 好吧,我们以insert()为例。您想在位置 n 处插入值 num。所以应该有一个公共方法insert(int num, int n)。这个方法应该递归调用另一个私有方法insert(Node node, int num, int n)。第一次调用将通过this.head

标签: java recursion data-structures linked-list singly-linked-list


【解决方案1】:

从你的班级访问 head 没有任何问题。

此外,Node 类可能与除SingleList 类之外的任何其他类无关,最好将其包含在SingleList 类中

public class SingleList {

    private class Node {
        int data;
        Node next;
    }

    // Rest of your class code...

}

【讨论】:

    猜你喜欢
    • 2016-05-14
    • 2012-12-12
    • 2012-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-05
    • 1970-01-01
    • 2017-07-13
    相关资源
    最近更新 更多