从链表中删除最小元素

0 java linked-list

什么是从链表中删除最小元素而不使用链表类中的 remove() 的算法。这就是我要找到的最小数据。我正在制作一个 Linkedlist 类,所以我不想使用已经存在的方法来做到这一点。

public void removeSmallest(){
    Node smallest=new Node(); 
    Node temp=head;
    Node prev=null;
    while(temp!=null){
        if(temp.next.data<temp.data && temp.next!=null){
            smallest.data=temp.next.data;
        }
    }



}
Run Code Online (Sandbox Code Playgroud)

Val*_*ade 6

public Node removeSmallest() {
   Node smallest = head; 
   Node temp = head;
   Node prev = null;

   while(temp != null) {
      if(temp.next != null && temp.next.data < smallest.data){
        smallest = temp.next;
        prev = temp;
      }
     temp = temp.next;
   }

   if(smallest != head) { //First element is not min
      prev.next = smallest.next;
   } else {
       head = head.next; //If first element is smallest, update the head
   }
   
   return head;
}
Run Code Online (Sandbox Code Playgroud)