LinkedList sum函数完成后是否删除整个列表



这是出于实践目的,而不是现实世界中的问题。

我在链表中对int数据类型的所有节点求和,这很好。

我还在链表中对具有偶数int数据类型的所有节点求和,这很好。

但是当我在测试类中一个接一个地调用时,整个列表都是空的(Well设置为null(。

我认为这与这条线路head = head.next; 有关

data()返回存储在该节点上的数据

测试等级

  linkedList.addTail(4);
  linkedList.addTail(7);
  linkedList.addTail(2);
  linkedList.addTail(7);
  linkedList.sum();
  //The list is empty here 
  linkedList.sumEven();

链表

public int sum(){
        int sum = 0;
        while (head != null) {  
            sum += head.data;  
            //Here 
            head = head.next;  
        }
        System.out.println(sum);
        return sum;
    }

public int sumEven(){
        //To keep track of the sum 
        int sum = 0;  
        while (head != null)  
        {  
            //If the data at head is even add 
            if (head.data() % 2 == 0)  
                sum += head.data;  
            //Or Here
            head = head.next;  
        }
        System.out.println(sum);
        return sum;  
    } 

每次分配head时,都会覆盖它。您可以在求和之前复制它,也可以使用类似于以下的for进行求和。

for(Integer i: head) sum += i;

我假设LinkedList中的元素是int类型的。

相关内容

  • 没有找到相关文章

最新更新