用链表实现合并两个升序排序的整型数组(链表)为一个新的升序整型链表并输出 java
时间: 2024-06-16 12:08:27 浏览: 120
[算法]快速排序,归并排序,堆排序的数组和单链表实现 (1) 数组和链表.pdf
可以使用归并排序的思想来实现合并两个升序链表。具体步骤如下:
1. 定义一个新的链表,作为最终合并后的结果;
2. 分别定义两个指针,分别指向两个已经排好序的链表的头节点;
3. 比较两个指针所指节点的值的大小,将较小值的节点添加到新链表中,并将对应指针向后移动一位;
4. 重复步骤3,直到其中一个链表为空;
5. 将另一个链表中剩余的节点全部添加到新链表中;
6. 返回新链表。
以下是实现该功能的Java代码:
```java
public class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
}
}
public class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
ListNode dummy = new ListNode(0);
ListNode cur = dummy;
while (l1 != null && l2 != null) {
if (l1.val <= l2.val) {
cur.next = l1;
l1 = l1.next;
} else {
cur.next = l2;
l2 = l2.next;
}
cur = cur.next;
}
if (l1 != null) {
cur.next = l1;
}
if (l2 != null) {
cur.next = l2;
}
return dummy.next;
}
}
```
阅读全文