在Java中合并两个排序的LinkedLists,可以使用双指针法。这种方法的基本思想是同时遍历两个链表,比较当前指针指向的节点的值,将较小的节点添加到结果链表中,并移动相应的指针。以下是具体的步骤和示例代码:
import java.util.LinkedList;
public class MergeSortedLists {
public static LinkedList<Integer> mergeTwoLists(LinkedList<Integer> l1, LinkedList<Integer> l2) {
LinkedList<Integer> result = new LinkedList<>();
int i = 0, j = 0;
while (i < l1.size() && j < l2.size()) {
if (l1.get(i) <= l2.get(j)) {
result.add(l1.get(i));
i++;
} else {
result.add(l2.get(j));
j++;
}
}
while (i < l1.size()) {
result.add(l1.get(i));
i++;
}
while (j < l2.size()) {
result.add(l2.get(j));
j++;
}
return result;
}
public static void main(String[] args) {
LinkedList<Integer> l1 = new LinkedList<>();
l1.add(1);
l1.add(3);
l1.add(5);
LinkedList<Integer> l2 = new LinkedList<>();
l2.add(2);
l2.add(4);
l2.add(6);
LinkedList<Integer> mergedList = mergeTwoLists(l1, l2);
System.out.println(mergedList); // 输出: [1, 2, 3, 4, 5, 6]
}
}
通过上述方法,可以高效地合并两个排序的LinkedLists,并且代码实现简单易懂。
领取专属 10元无门槛券
手把手带您无忧上云