【发布时间】: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