在Java中合并两个排序的链表,可以通过以下操作来创建新的链表头部:
这样,通过遍历两个链表,比较节点值大小,并将较小节点连接到新链表中,最终得到一个合并后的有序链表。
以下是一个示例代码:
public class MergeSortedLinkedList {
public ListNode merge(ListNode l1, ListNode l2) {
ListNode newHead = new ListNode(0); // 创建新的链表头节点
ListNode newNode = newHead; // 创建指针指向新的链表头节点
while (l1 != null && l2 != null) {
if (l1.val <= l2.val) {
newNode.next = l1; // 将较小节点连接到新链表中
l1 = l1.next; // 移动l1指针
} else {
newNode.next = l2; // 将较小节点连接到新链表中
l2 = l2.next; // 移动l2指针
}
newNode = newNode.next; // 移动newNode指针
}
// 将剩余的非空链表部分连接到newNode的下一个节点
if (l1 != null) {
newNode.next = l1;
}
if (l2 != null) {
newNode.next = l2;
}
return newHead.next; // 返回合并后的链表头节点
}
}
这个方法的时间复杂度是O(n),其中n是两个链表的总长度。
推荐的腾讯云相关产品:腾讯云云服务器(ECS)和腾讯云数据库(TencentDB)。
领取专属 10元无门槛券
手把手带您无忧上云