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

后端 未结 26 3027
有刺的猬
有刺的猬 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:31

    Here is a complete working example that uses the linked list implemented java.util. You can just copy paste the code below inside a main() method.

            LinkedList dList1 = new LinkedList();
            LinkedList dList2 = new LinkedList();
            LinkedList dListMerged = new LinkedList();
    
            dList1.addLast(1);
            dList1.addLast(8);
            dList1.addLast(12);
            dList1.addLast(15);
            dList1.addLast(85);
    
            dList2.addLast(2);
            dList2.addLast(3);
            dList2.addLast(12);
            dList2.addLast(24);
            dList2.addLast(85);
            dList2.addLast(185);
    
            int i = 0;
            int y = 0;
            int dList1Size = dList1.size();
            int dList2Size = dList2.size();
            int list1Item = dList1.get(i);
            int list2Item = dList2.get(y);
            while (i < dList1Size || y < dList2Size) {
    
                if (i < dList1Size) {
    
                    if (list1Item <= list2Item || y >= dList2Size) {
                        dListMerged.addLast(list1Item);
                        i++;
                        if (i < dList1Size) {
                            list1Item = dList1.get(i);
                        }
                    }
                }
    
    
                if (y < dList2Size) {
    
                    if (list2Item <= list1Item || i >= dList1Size) {
                        dListMerged.addLast(list2Item);
                        y++;
                        if (y < dList2Size) {
                            list2Item = dList2.get(y);
                        }
                    }
                }
    
            }
    
            for(int x:dListMerged)
            {
                System.out.println(x);
            }
    

提交回复
热议问题