首页 > 其他 > 详细

9-21.合并两个有序链表

时间:2021-04-24 10:35:46      阅读:11      评论:0      收藏:0      [点我收藏+]

题目描述:
技术分享图片
解题思路:

合并有序链表是一个比较经典的递归算法,如果list1[0]<list2[0],那么list1[0]就是第一个元素,这样合并的链表就是list[0]-->(list1[1-rear],list2),否则是list2[0]-->(list1,list2[1->rear])

即:

list1[0]+merge(list1[1:],list2) list1[0]<list2[0]
list2[0]+merge(list1,list2[1:]) otherwise

代码:

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    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;
        }
    }
}

9-21.合并两个有序链表

原文:https://www.cnblogs.com/forrestyu/p/14696023.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!