gpt4 book ai didi

java - 从 Cracking the Coding Interview 中删除列表中的重复项

转载 作者:行者123 更新时间:2023-11-30 11:11:52 25 4
gpt4 key购买 nike

来自 Cracking the Coding Interview。问题 2.1:编写代码从未排序的链表中删除重复项。这是他们提供的解决方案:

public static void removeDuplicates(Node n) {
Hashtable<Integer, Boolean> table = new Hashtable<Integer, Boolean>();
Node previous = n;
while (n != null) {
if (table.containsKey(n.data)) {
previous.next = n.next;
} else {
table.put(n.data, true);
previous = n;
}
n = n.next;
}
}

我的问题是:当你执行 n=n.next 时,你不会失去列表的头部(第一个节点)吗?如果您无法访问头部,您将如何在删除重复项的情况下再次访问此列表?

还有,使用 Set 代替 Table 不是更好吗?我认为您不需要 Key 和 Value。我想你只需要 key ,对吧?

谢谢

最佳答案

首先,正如评论中已经提到的,局部参数的更改对调用者的输入变量没有影响。
其次,你是对的,使用 Set 会更好,但这只是因为代码更易读。代码在语法上是正确的,在内部一个 Set 只不过是一个 Map 具有相同的dummyobject 作为每个键的值。

关于java - 从 Cracking the Coding Interview 中删除列表中的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27180954/

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