通过方法访问链表



在这种方法中,我假设从链接列表中删除所有零,但我不确定如何访问链表。我不允许更改方法的参数,但我可以更改返回。如何访问链接列表进行修改?

public domino removeZero() {
    // ****** student exercise

    return this;
}

这是调用该方法的行:

train = train.removeZero();

类的名称是多米诺骨牌。

这是完整的程序 http://pastebin.com/EwNJj9mV

你可以使用一些getter setter方法就像将链接列表存储在一个不同类的静态变量中,而不是在您的方法中获取该静态变量的值。

import java.util.LinkedList;
public class linkedListStorage {
private static LinkedList linkedList;
public static LinkedList getLinkedList() {
    return linkedList;
}
public static void setLinkedList(LinkedList linkedList) {
    linkedListStorage.linkedList = linkedList;
}
}

现在,当您获得链接列表时,请通过二传手方法放置它

import java.util.LinkedList;
class JunitTest {
public static void main(String[] args) {
    // set linked list to storage class's variable
    linkedListStorage.setLinkedList(your linked list variable);
}
}

现在在您的方法中使用您的链表

public domino removeZero() {
// ****** student exercise
// get your linked list from storage class
LinkedList ll = linkedListStorage.getLinkedList();

return this;
}

我怀疑你需要学习一些关于面向对象编程的基础知识,然后重新提出这个问题。您在问题中包含的方法 (removeZero) 是类 (domino) 的成员,该类具有您可以在方法内部访问的字段。换句话说,removeZero 可以访问链表,因为它是链表对象的方法。

在这种情况下,代码将如下所示:

public domino removeZero() {
    domino first = null;
    for (domino current = this; current.next != null; current = current.next) {
        if (current.spot1 == 0 || current.spot2 == 0) {
            if (current.back != null)
                current.back.next = current.next;
            if (current.next != null)
                current.next.back= current.back;
        } else if (first == null) {
            first = current;
        }
    }
    return first;
}

顺便说一句,你应该告诉你的老师使用大写字母来开始班级名称。它应该被称为多米诺骨牌,而不是多米诺骨牌。

相关内容

  • 没有找到相关文章

最新更新