如何解决在 n 个节点的循环单列列表中的某个指针指向的节点之前插入节点的时间复杂度?
我认为它是 O(N) 因为在循环单列表中指针访问 n 个节点,因此要插入的节点在当前节点之前。
我做对了吗?
解决方法
通常的遍历和插入需要 O(N)
时间。但是,如果节点可以修改,也可以在 O(1)
中完成。
让列表看起来像 A -> B-> C -> D -> A
,我们得到一个指向 C
的指针,我们必须插入 E
。现在,创建 C
的副本并将其插入 C
本身之后。该列表现在看起来像 A -> B-> C -> C(copy) -> D -> A
。现在,我们可以修改原始 C
节点的值来存储 E
节点的值,因此列表现在变为 A -> B-> E -> C -> D -> A
。由于您只创建了一个节点并将其插入到位,因此需要 O(1)
时间复杂度。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。