2. 兩數(shù)相加

https://leetcode-cn.com/problems/add-two-numbers/

  • 模擬

    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        ListNode head=null,tail=null;
        int carry=0;
        while (l1!=null||l2!=null){
            int n1 = l1!=null?l1.val:0;
            int n2 = l2!=null?l2.val:0;
            int sum = n1+n2+carry;
            if(head==null){
                head=tail=new ListNode(sum%10);
            }else{
                tail.next = new ListNode(sum%10);
                tail = tail.next;
            }
            carry = sum/10;
            if(l1!=null){
                l1=l1.next;
            }
            if(l2!=null){
                l2=l2.next;
            }
        }
        if(carry>0){
            tail.next = new ListNode(carry);
        }
        tail.next=null;
        return head;
    }
    
  • 遞歸

public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
    return dfs(l1,l2,0);
}

private ListNode dfs(ListNode l1, ListNode l2, int i) {
    if(l1==null&&l2==null&&i==0) return null;
    int sum = (l1!=null?l1.val:0)+(l2!=null?l2.val:0)+i;
    ListNode node = new ListNode(sum%10);
    node.next = dfs(l1==null?null:l1.next,l2==null?null:l2.next,sum/10);
    return node;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容