单链表 - 获取和添加方法

所以我尝试通过完成实现来实现 SLList 类:


get(i)、set(i, x)、add(i, x)和remove(i)操作,每个操作都需要 O(1 + i) 时间。


我的程序遇到的困难是添加和获取方法。我不断收到错误incompatible types: SLList<T>.Node cannot be converted to int,而且incompatible types: SLList<T>.Node cannot be converted to int。


我对如何修复它们感到非常困惑。我今天刚刚了解了链表,我正在努力理解它们的概念。任何帮助或提示将非常感激。


public T get(int i) {

    // TODO: Implement this

    Node u = head;

    for(int j = 0; j < i; j++){

        i = u.next;

    }

    return u;

    if (i < 0 || i > n - 1) throw new IndexOutOfBoundsException();

    return null;

}



public void add(int i, T x) {

        Node u = new Node();

        u.x = x;

        if (i == 0) {

            head = u;

        } else {

            tail.next = u;

        }

        tail = u;

        i++;

        return true;

        if (i < 0 || i > n) throw new IndexOutOfBoundsException();

}

我应该提到每个函数 T 和 void 的类型必须保持原样。我还相信我应该在代码中包含 IndexOutOfBoundsException 部分。


如果你们想查看我的完整代码,请访问:https://pastebin.com/nJ9iMjxj


守候你守候我
浏览 94回答 2
2回答

潇湘沐

在您的node类中, 的类型next是node,而在您的get方法中,您将 a 分配node给整数变量:i = u.next;我没有看到你的整个实现,但我认为应该是u = u.next;

慕虎7371278

在你的get方法中,你试图将 a 分配Node给int第 5 行的变量。相反,你应该写u=u.next;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java