从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的列表的最小元素,那么您应该执行以下操作:
- 你需要一个比较器,通过它可以比较元素以找到最小值
- 你必须遍历列表才能找到最小元素
- 你必须从列表中删除此元素。