在java中使用内置的LinkedList而不是定义ListNode

fivyi3re  于 2023-05-21  发布在  Java
关注(0)|答案(1)|浏览(99)

我想合并两个排序的链表(21 leetcode),但我不想定义ListNode。我需要使用Java中定义的LinkedList,我认为它的方法足以解决任何有关它的问题。(我对leetcode很陌生,我不知道为什么在leetcode中ListNode被定义在代码的顶部,而我们在Java中已经有了它)。总之,我创建了两个链表并对它们进行了排序。现在我需要创建另一个节点作为tempNode和currentNode,用于合并这两个排序链表。你能帮我吗?

ListNode temp_Node= new ListNode(0);

ListNode current_Node= temp_Node;

我也不知道如何使用瓦尔像

while (list1 != null && list2 != null) {
    if (list1.val < list2.val) {
        current_Node.next = list1;
        list1 = list1.next;
    }
}

你能帮帮我吗?这是我的代码。

package MergeTwoSortedLists;

     import java.util.ArrayList;
     import java.util.Arrays;
     import java.util.Collections;
     import java.util.Comparator;
     import java.util.LinkedList;
     import java.util.Scanner;

     public class Driver
     {
         public static void main(String[] args)
        {
          Scanner scanner= new Scanner(System.in);
          String str1= scanner.nextLine();
          String str2= scanner.nextLine();
       
          String[] str_arr1=str1.split(" ");;
          String[] str_arr2=str2.split(" ");`
          LinkedList<String> lnk_List3= new LinkedList<String>();
          LinkedList<String> lnk_List4= new LinkedList<String>();
          for (int i=0; i<str_arr1.length; i++) {
             lnk_List3.add(str_arr1[i]);
          }
          for(int i=0; i<str_arr2.length; i++) {
            lnk_List4.add(str_arr2[i]);
          }
          Collections.sort(lnk_List1);
          Collections.sort(lnk_List2);
       }
     }

谢谢你。

gfttwv5a

gfttwv5a1#

这很简单,如果你的输入是排序的链表,然后使用合并算法(不是合并排序,只是合并算法)来排序两个链表。
https://www.geeksforgeeks.org/merge-two-sorted-linked-lists/
时间复杂度为O(m+n),时间复杂度为O(m+n)时间复杂度O(nlogn + m + n)
因此,使用合并算法并提高效率。
Happy Coding:)
leet Code是一个让你从基础开始练习的平台。他们想用这个问题教指针和合并算法。

相关问题