从链表中删除最小值

时间:2013-05-19 09:38:18

标签: 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
            continue;
    }
} 

2 个答案:

答案 0 :(得分:3)

你可以这样做:

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

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

答案 1 :(得分:0)

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

  1. 你需要一个比较器来比较元素 找到最低要求
  2. 你必须遍历列表才能找到最小元素
  3. 您必须从列表中删除此元素。