0

私の問題は何ですか?リストを合計しようとしましたが、常に 0 を返します

public static int sum(List<Integer> l, Node<Integer> pos, int sum)  
{  
    if(pos==null)  
        return 0;  
    sum=sum+pos.getInfo();  
    pos=pos.getNext();  
    return sum+sum(l, pos, sum);  
}

public static void main(String[] args) { 
    int sum=0; 
    List<Integer> l = new List<Integer>(); 
    Node<Integer> pos = l.getFirst(); 

    l = input(l, pos); 
    System.out.println(l); 
    System.out.println(sum(l, pos, sum)); 
} 

ありがとう。

4

1 に答える 1

2

コメントで、呼び出しサイトは次のようになっていると言います。

public static void main(String[] args) {
    int sum = 0;
    List<Integer> l = new List<Integer>();
    Node<Integer> pos = l.getFirst();      //<======= `pos' refers to the empty list
    l = input(l, pos);
    System.out.println(l);
    System.out.println(sum(l, pos, sum));
}

問題はpos、リストに何かを追加する前に初期化するため、常に元の (空の) リストを合計することです。

于 2013-02-18T19:09:43.443 に答える