Delete duplicate-value nodes from a sorted linked list

Sort by

recency

|

924 Discussions

|

  • + 0 comments

    JavaScript:

    function removeDuplicates(llist) {
      let currentNode = llist;  
        
      while (currentNode) {
        if (currentNode.data === currentNode.next?.data) {
          currentNode.next = currentNode.next.next;
        } else {
          currentNode = currentNode.next;
        }
      }
    
      return llist;
    }
    
  • + 0 comments

    In Kotlin:

    fun removeDuplicates(llist: SinglyLinkedListNode?): SinglyLinkedListNode? {
        var current = llist;
        
        while (current != null && current.next != null) {
            if (current.data == current?.next?.data) {
                current.next = current?.next?.next;
            } else {
                current = current?.next
            }
        }
        
        return llist
    }
    

    But I does not work in some tests. I think it is the compiler bug.

  • + 0 comments

    My Java 8 Solution

    public static SinglyLinkedListNode removeDuplicates(SinglyLinkedListNode llist) {
            SinglyLinkedListNode current = llist;
            
            while (current != null && current.next != null) {
                if (current.data == current.next.data) {
                    current.next = current.next.next;
                } else {
                    current = current.next;
                }
            }
            
            return llist;
        }
    
  • + 0 comments

    This C++ solution mirrors the Python logic and is clean, robust, and handles corner cases well (e.g., duplicates at the start). Memory is handled with a dummy pointer to help simplify pointer rewiring. Betbricks7 com sign up

  • + 0 comments

    Hello I tried to solve this with kotlin cause Im Software android Engineer and I feel more familiar with kotlin

    fun removeDuplicates(llist: SinglyLinkedListNode?): SinglyLinkedListNode? {
     var current = list
    
     while(current?.next != null){
     if(current.data == current.next?.data){
     current.next = current.next?.next
     }else{
     current = current.next
     }
     }
     return list
    }
    

    My logic is correct but Hacker rank has a kind of bug working with nulleables types the same logic in python works correctly why?

    def removeDuplicates(llist):
     current = llist
    
    while current.next is not None:
    if current.data == current.next.data:
    current.next = current.next.next
    else:
    current = current.next
    
    return llist