【Lintcode】 167. Ajouter deux nombres

Adresse du titre:

https://www.lintcode.com/problem/add-two-numbers/description

Étant donné deux listes liées, représentant la représentation décimale d'un nombre du chiffre unique au chiffre supérieur, additionnez les deux nombres et renvoyez la liste liée dans le même format. Ajoutez directement deux nombres. Le code est le suivant:

public class Solution {
    /**
     * @param l1: the first list
     * @param l2: the second list
     * @return: the sum list of l1 and l2
     */
    public ListNode addLists(ListNode l1, ListNode l2) {
        // write your code here
        int cur = 0;
        ListNode dummy = new ListNode(0), prev = dummy;
        while (l1 != null || l2 != null) {
            if (l1 != null) {
                cur += l1.val;
                l1 = l1.next;
            }
            if (l2 != null) {
                cur += l2.val;
                l2 = l2.next;
            }
            prev.next = new ListNode(cur % 10);
            prev = prev.next;
            cur /= 10;
        }
        // 最后的进位如果是1,还需要补一下最高位
        if (cur == 1) {
            prev.next = new ListNode(1);
        }
        
        return dummy.next;
    }
}

class ListNode {
    int val;
    ListNode next;
    ListNode(int x) {
        val = x;
    }
}

Complexité temporelle Le ( n ) O (n) , espace Le ( 1 ) O (1)

A publié 392 articles originaux · A aimé 0 · 10 000+ vues

Je suppose que tu aimes

Origine blog.csdn.net/qq_46105170/article/details/105469235
conseillé
Classement