2015-04-05 66 views
0

返回字符串以允许空消息的最小方法。我有错误并不是所有的代码路径返回一个值?在链接列表中实现最小方法,该方法在队列为空或返回队列的最低值时返回消息。

这种方法的想法是返回存储在链表中的最小值。如果链表为空,则返回消息表示队列为空。

侧面说明:我试图实现与内衬列表

public string Minimum() 
    { 
     string min = "The Queue is empty"; 

     if (head == null) 
     { 
       return min; 
     } 

     SLLNode curr = head; 
     SLLNode prev = null; 

     int minimum = 0; 

     while (curr != null) 
     { 
      // have a match 
      if (curr.NodeValue <= minimum) 
      { 

       minimum = curr.NodeValue; 

       prev = curr; 
       curr = curr.Next; 

       min = minimum.ToString(); 

      } 
      else 
      { 
       // advanced curr and prev 
       prev = curr; 
       curr = curr.Next; 
      } 

      return min; 
     } 
    } 

回答

2
 } 
     //return min; 
    } 
    return min; 
} 
2

这里是你的功能简化的队列。您将minimum初始化为0,而不是第一个节点的值或高值。您不必要地使用了两个指针,并在else内复制了节点指针提取。你测试了<=但是<会做。

public string Minimum() 
    { 
     string min = "The Queue is empty"; 
     if (head == null) 
     { 
      return min; 
     } 
     SLLNode curr = head; 
     int minimum = curr.NodeValue; 
     while (curr != null) 
     { 
      if (curr.NodeValue < minimum) 
       minimum = curr.NodeValue; 
      curr = curr.Next; 
     } 
     min = minimum.ToString(); 
     return min; 
    }