我的目标是制作一个链接列表,其中每个链接都是一个字符。我希望它接受一个字符串作为参数,采用第一个字母并将其转换为字符,然后将字符串的其余部分传递到下一个链接,直到存储了整个字符串。到目前为止,这是我所拥有的,尽管我不确定是哪个部分正确或不正确。我查看了很多示例,这似乎是默认设置。
public class linkedChar{
char data;
linkedChar head;
linkedChar next;
//This is the empty link constructor
public linkedChar(){
next = null;
}
//This is the constructor that takes a string
public linkedChar(String input){
if(input.length() > 0){
data = input.charAt(0);
next = new linkedChar(input.substring(1));
}
}
}
这段代码可以编译,但是不能与我的其他操作方法一起使用。例如,我的长度方法。
public int length(){
int length = 0;
linkedChar curr = head;
while(curr != null){
curr = curr.next;
length++;
}
return length;
}
使用时,返回的长度始终为0。我不确定代码的哪一部分有错误,并且我不知道如何解决。任何帮助将是巨大的,谢谢。
最佳答案
在构造函数中,您永远不会将head
初始化为任何内容,因此在您的length方法中,当您将linkedChar curr = head;
设置为curr
时,会将length
设置为null,因此不会在while循环中递增。