Un problème algorithmique classique: fusionner deux listes chaînées ordonnées

Je viens de poser cette question sur Leetcode, alors je me suis souvenu d'un dicton classique: les gens ne peuvent même pas poser de questions simples quand ils sont extrêmement en colère!

La difficulté de cette question marquée sur Leetcode est une question simple, mais après y avoir longtemps réfléchi, c'était douloureux et je ne savais pas ce qui se passait. Au final, il m'a fallu plus d'une heure pour y réfléchir, c'était essentiellement une méthode récursive, combinée à une liste chaînée, donc ça m'a semblé un peu simple, haha!

Idées:

 

répondre:

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

 

 

 

Je suppose que tu aimes

Origine blog.csdn.net/qq_36428821/article/details/112725912
conseillé
Classement