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