用java语言实现SinglyList<T>单链表类增加的void removeAll(T key)方法,public权限,查找并删除所有与key相等的元素结点
时间: 2023-05-21 17:06:59 浏览: 134
实现在单链表中删去值相同的多余结点的算法.txt
以下是用 Java 语言实现 SinglyList<T> 单链表类增加的 void removeAll(T key) 方法的代码:
```java
public class SinglyList<T> {
private Node<T> head;
public void removeAll(T key) {
Node<T> curr = head;
Node<T> prev = null;
while (curr != null) {
if (curr.data.equals(key)) {
if (prev != null) {
prev.next = curr.next;
} else {
head = curr.next;
}
} else {
prev = curr;
}
curr = curr.next;
}
}
private static class Node<T> {
T data;
Node<T> next;
Node(T data, Node<T> next) {
this.data = data;
this.next = next;
}
}
}
```
这个方法会查找并删除所有与给定 key 相等的元素结点。如果结点的数据域与 key 相等,就把它从链表中删除。方法的时间复杂度是 O(n),其中 n 是链表的长度。
另外,如果你有任何其他的问题,欢迎随时问我。
阅读全文