Java 从linkedlist中删除最小值
我需要从链表中删除最小的元素值。像Java 从linkedlist中删除最小值,java,data-structures,Java,Data Structures,我需要从链表中删除最小的元素值。像 {8,4,7,2,9,4,5,3} 变成: {8,4,7,9,4,5,3} 我写道: public void RemoveMin() { T min = list.getInfo(); for (int i = 0; i < 7; i++) { if (list.getLink() < min) min = (T) list.getLink(); else
{8,4,7,2,9,4,5,3}
变成:
{8,4,7,9,4,5,3}
我写道:
public void RemoveMin() {
T min = list.getInfo();
for (int i = 0; i < 7; i++) {
if (list.getLink() < min)
min = (T) list.getLink();
else
continue;
}
}
public void RemoveMin(){
T min=list.getInfo();
对于(int i=0;i<7;i++){
if(list.getLink()
您可以这样做:
public void RemoveMin()
{
int nbElements = list.size()
int lowerValueIndex = 0
for (i = 0; i < nbElements; i++)
{
if(list.get(i) < list.get(lowerValueIndex)
{
lowerValueIndex = i;
}
}
list.remove(lowerValueIndex);
}
public void RemoveMin()
{
int nbElements=list.size()
int lowerValueIndex=0
对于(i=0;i
首先,用第一个元素初始化最小值。
然后在每个元素上,将该值与已找到的较低值进行比较。
如果新值较低,则采用新的lowerValueIndex。
最后,您只需删除最低的元素。
请小心,使用此解决方案,您的数据必须具有直接可比性如果您的问题是如何删除元素为泛型类型T的列表中的最小元素,那么您应该执行以下操作:
“从linkedlist中删除最小值?”是以“?”结尾的语句,而不是问题。您的问题是什么?这里的问题是什么?
list.getLink()
如果min
是一个T
,如何比较min
呢?如果min出现不止一次怎么办?这不是问题。问题以问号结尾。如果列表中包含可以与“I thinkList.get(I).compareTo(List.get(lowerValueIndex))进行比较的元素,则此解决方案很好<0
更好。如果列表中有一个“min”,则元素应该是有序集的一部分,并且具有<>运算符。哦,对了,java没有运算符重载。@我的JVM的java.util.LinkedList
中的user2151446,getSize()
只需返回大小
,它不会遍历整个列表。如果您的列表仅包含整数,则您只需从daarksim的答案中选择代码即可。