从linkedlist删除最小值

我需要从链表中删除最小的元素值。 喜欢

{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() { 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); } 

首先,使用第一个元素初始化最低值。 然后在每个元素处,将值与已找到的较低值进行比较。 如果新值较低,则采用新的lowerValueIndex。 最后,您只需删除最低的元素。 请注意,使用此解决方案,您的数据必须直接具有可比性

如果您的问题是如何删除元素属于通用类型T的列表的最小元素,那么您应该执行以下操作:

  1. 你需要一个比较器,通过它可以比较元素以找到最小值
  2. 你必须遍历列表才能找到最小元素
  3. 你必须从列表中删除此元素。