AcWing打卡活动
《剑指Offer》打卡活动
周三第二题 合并两个排序的链表
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
* 思路
* 从输入的参数可以看出,l1的头结点总是比l1的头结点小的,所以合并链表的头结点应该为l1的头结点
* 使用递归即可
*/
class Solution {
public ListNode merge(ListNode l1, ListNode l2) {
// 如果l1节点为空,则返l2
if(l1 == null) {
return l2;
}
// 如上,同理
if(l2 == null) {
return l1;
}
ListNode mergeNode = null;
if(l1.val < l2.val) {
mergeNode = l1;
mergeNode.next = merge(l1.next, l2);
} else {
mergeNode = l2;
mergeNode.next = merge(l1, l2.next);
}
return mergeNode;
}
}