0

リンク リストの実装を作成していますが、add メソッドに問題があります。いくつかのエントリでテストした後、私のsize()メソッドは常に 1 を返します。何が間違っていますか。

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);
        }             
    }
}
4

2 に答える 2

0

return size(currentNode.next);これを試す代わりにreturn count + size(currentNode.next);

リストに問題がなければ、カウントの問題が修正されます。しかし、コードをパッと見てみると、リスト追加コードにもバグがあるように見えます。

于 2016-12-08T18:05:15.807 に答える