【问题标题】:Sum of elements in "manual" Linked list java“手动”链表java中的元素总和
【发布时间】:2017-12-02 15:12:54
【问题描述】:

我有一个关于如何编写一个函数来给出手动链表中元素总和的问题。我像这样尝试过,但它不起作用: 函数 insert() 在列表中插入元素。

public class list {
            int head;
            List tail;
            int sum=0;
            int value;
    public void insert(int elt){
        if(tail == null){

            tail = new list();
            tail.head = elt;

        }
        else{
        tail.insert(elt);
        }
    }
    public int sum(list head){
            if(head!=null){
                sum += head;
                return tail.sum(head);
            }
            return sum;
        }
}

【问题讨论】:

  • 最好使用英文命名变量,而Seznam不是已知类型。
  • 它的类名:public class Seznam {
  • 什么也没告诉我们,我们不知道它是什么。见minimal reproducible exampleHow to Ask
  • 这个内部类是“Seznam”吗?
  • 是的,它是@Lalit Verma

标签: java


【解决方案1】:

这类事情的代码(即“手动”链表迭代)是这样的:

public int calculateSum(MyList list) {
    Node node = list.head();
    int sum = 0;
    while (node != null) {
        sum += node.value();
        node = node.next();
    }
    return sum;
}

class MyList {
    public Node head();
} 

class Node {
    public int value() ;
    public Node next() ;
} 

【讨论】:

  • 能否请您编写整个函数,以便我查看函数中需要哪些参数
  • 您需要自己编写 MyListNode 类。
【解决方案2】:

为什么不使用 java 中的 List Object 呢? 您可以将此函数用于列表中元素的总和:

public static int sum (List<Integer> list) {
    int sum = 0;
    for (int i: list) {
        sum += i;
    }
    return sum;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多