输⼊两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满⾜单调不减规则。
如输⼊{1,3,5} , {2,4,6} 时,合并后的链表为{1,2,3,4,5,6} ,所以对应的输出为{1,2,3,4,5,6} ,转换过程如下图所示:
使用两个指针分别遍历两个链表,比较当前节点的值,将较小的节点连接到结果链表上。当一个链表遍历完后,将另一个链表的剩余部分直接连接到最后。
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
// 创建哑节点作为合并后链表的头节点前驱
ListNode dummy = new ListNode(-1);
ListNode current = dummy;
while (l1 != null && l2 != null) {
if (l1.val
利用递归将问题分解:每次比较两个链表的头节点,选择较小的节点作为合并后链表的头节点,然后递归地合并剩余部分。
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
if (l1 == null) return l2;
if (l2 == null) return l1;
if (l1.val
本文来自在线网站:seven的菜鸟成长之路,作者:seven,转载请注明原文链接:www.seven97.top
参与评论
手机查看
返回顶部