一道经典算法题:合并两个有序链表

刚刚在Leetcode上刷到了这道题,于是我想起了一句经典名言:人在极度愤怒的情况下连简单题都做不出来!

这道题在Leetcode上标注的难度是简单题,但是思考了很久也很痛苦也没想明白是咋回事。最终在耗了我一个多小时候才思考明白,基本上就是一个递归的方式,结合了链表所以显得有些简单,哈哈!

思路:

题解:

/**
 * 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;
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_36428821/article/details/112725912