JAVA递归合并两个有序的单链表,合并以后依然有序
时间: 2023-06-16 19:01:59 浏览: 155
两个有序顺序表合并成一个顺序表,还是有序的
4星 · 用户满意度95%
可以使用递归的方式来合并两个有序的单链表,具体实现过程如下:
```java
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
// 递归结束条件
if (l1 == null) {
return l2;
}
if (l2 == null) {
return l1;
}
// 比较两个链表头结点的大小,选择较小的结点作为新链表的头结点
if (l1.val < l2.val) {
l1.next = mergeTwoLists(l1.next, l2);
return l1;
} else {
l2.next = mergeTwoLists(l1, l2.next);
return l2;
}
}
```
其中,`ListNode` 表示单链表的结点,包含一个整数值 `val` 和一个指向下一个结点的指针 `next`。在递归过程中,如果 `l1` 和 `l2` 中有任意一个为空,则直接返回另一个链表;否则,比较两个链表的头结点,将较小的那个结点作为新链表的头结点,然后递归处理剩下的结点,直到两个链表都为空,返回新链表的头结点即可。
阅读全文