リンクリストの実装を作成中で、addメソッドに問題があります。いくつかのエントリでそれをテストした後、私のsize()
メソッドは常に1を返します。何が間違っているのですか? return size(currentNode.next);
の代わりにリンクリストに複数の項目を追加する
public class Node {
public int data;
public Node next;
public Node(int data){
this.data = data;
}
}
public class LinkedList {
public Node first;
public Node last;
public LinkedList(){
first = null;
last = null;
}
public void add(int data){
Node newNode = new Node(data);
if(first == null){
first = newNode;
} else {
add(first, newNode);
}
}
public void add(Node currentNode, Node newNode){
if(currentNode.next != null){
add(currentNode.next, newNode);
}
currentNode.next = newNode;
}
public int size(){
if(first == null){
return 0;
}
else{
return size(first);
}
}
public int size(Node currentNode){
//Count Starts At One Because First = 1.
int count = 1;
if(currentNode == null){
return count;
}
else {
count++;
return size(currentNode.next);
}
}
}
一般に、バグを見つけたときには、直接編集しないでください。それはあなたの質問とすべての関連する回答を完全に無効にします。 –
特にこれらの編集が無意味であるか、まったく間違っている場合。 –
私は編集したコードを編集したものを元に戻しました(フォーマットしていません)。しかし、あなたのコードを読みやすくするために、より良いコードを作成することについての賞賛。それは非常に有用であり、あなたはそれを続けなければなりません。 –