gpt4 book ai didi

java - 在Java中将链表添加到另一个链表的末尾

转载 作者:行者123 更新时间:2023-12-01 10:45:32 24 4
gpt4 key购买 nike

这是使用Java Linked List 。我有 2 个链表。我想通过将第 0 个列表中的最后一个节点链接到第 1 个列表中的第 0 个节点来将它们添加在一起。目前,我可以通过迭代第二个列表并添加其中的每个元素来将它们附加在一起,如下所示:

LinkedList<HashSet<Integer>> ll = someList;//Some random list
LinkedList<HashSet<Integer>> subSetLl = getSubsets(inSetSub);//Also some list

for (HashSet<Integer> set : subSetLl){
ll.add(set);
}

但是,由于这些是链接列表,因此应该有一种更有效的方法将它们添加在一起,通过将一个的末尾指向下一个的开头。这样的事情存在吗?

为了清楚起见进行编辑:当前方法在 O(n) 中运行,其中 n 是第一个链表的长度。如果两个元素都是链表,是否有 O(1) 方法来完成此任务?

最佳答案

我认为唯一的方法是复制 LinkedList 类的实现,然后更改 addAll 方法以识别传递的集合是否属于同类。此外,您还必须注意,如果将列表添加到末尾 - 这是不安全的,因为一个列表中的更改可能会导致另一个列表中的更改。如果您复制内存并确保其安全,则无法提高效率,因为无论如何您都会循环访问元素。

关于java - 在Java中将链表添加到另一个链表的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34204981/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com