java - 单向链表 - get 和 add 方法

标签 java node.js linked-list queue singly-linked-list

所以我试图通过完成实现来实现一个 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

最佳答案

在你的node类中,next的类型是node,而在你的get方法中,你正在将 node 分配给整数变量:

i = u.next;

我没有看到你的整个实现,但我认为它应该是 u = u.next;

关于java - 单向链表 - get 和 add 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58349544/

相关文章:

node.js - 回调问题 - 带有 Nodejs 运行时的 OpenWhisk

javascript - 如何最有效地搜索数据? (RAM 或 MongoDB 中的对象)

java - 如何正确使用类型参数

java - LdapInvalidDn异常 : unexpected token:

java - BeanUtils.copyProperties() 与 DozerBeanMapper.map()

node.js - 在 PATH 上找不到运行时 'node' - Visual Studio Code 和 Node.js

java - 为什么物理后退按钮与应用程序后退按钮的工作方式不同

c++ - 如何跟踪单链表的开头?

java - 从链表中删除所有节点(给定开始和结束索引)

c - 链表和内存地址