Interview Question: Merge two sorted singly linked lists without creating new nodes

后端 未结 26 2984
有刺的猬
有刺的猬 2020-12-02 04:09

This is a programming question asked during a written test for an interview. \"You have two singly linked lists that are already sorted, you have to merge them and return a

26条回答
  •  死守一世寂寞
    2020-12-02 04:33

    Iteration can be done as below. Complexity = O(n)

    public static LLNode mergeSortedListIteration(LLNode nodeA, LLNode nodeB) {
        LLNode mergedNode ;
        LLNode tempNode ;      
    
        if (nodeA == null) {
            return nodeB;
          } 
          if (nodeB == null) {
            return nodeA;
          }     
    
    
        if ( nodeA.getData() < nodeB.getData())
        {
            mergedNode = nodeA;
            nodeA = nodeA.getNext();
        }
        else
        {
            mergedNode = nodeB;
            nodeB = nodeB.getNext();
        }
    
        tempNode = mergedNode; 
    
        while (nodeA != null && nodeB != null)
        {           
    
            if ( nodeA.getData() < nodeB.getData())
            {               
                mergedNode.setNext(nodeA);
                nodeA = nodeA.getNext();
            }
            else
            {
                mergedNode.setNext(nodeB);
                nodeB = nodeB.getNext();                
            }       
            mergedNode = mergedNode.getNext();
        }
    
        if (nodeA != null)
        {
            mergedNode.setNext(nodeA);
        }
    
        if (nodeB != null)
        {
            mergedNode.setNext(nodeB);
        }       
        return tempNode;
    }
    

提交回复
热议问题