Leetcode--Add Two Numbers

這個題很像大數(shù)相加,一共有三個思路:

第一種:迭代寫法。

考慮三種情況:
1.l1與l2都為null時,返回進位值。
2.l1與l2有一個為null時,返回那個不為null的值
3.l1與l2都不為null時,考慮鏈表長度不一樣,小的那個鏈表以0代替。
代碼如下:java實現(xiàn):

public class Solution {
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        ListNode head = new ListNode(0);
        if(l1==null && l2==null ){
            return head;
        }
        int sum = 0; int carry = 0;
        ListNode curr = head;
        while(l1 != null || l2 != null){
            int num1 = l1 == null? 0 :l1.val;
            int num2 = l2 == null? 0 :l2.val;
            sum = num1 + num2 + carry;
            curr.next = new ListNode(sum%10);
            curr = curr.next;
            carry = sum /10;
            l1 = l1 == null? null : l1.next;
            l2 = l2 == null? null : l2.next;
        }
        if(carry != 0){
            curr.next = new ListNode(carry);
        }
        return curr.next;
    }
}
第二種:遞歸寫法:
public class Solution {
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        return helper(l1,l2,0);
    }

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

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

  • 如圖,就是把兩個鏈表里的值逐個相加,滿10進1 鏈表的結(jié)構(gòu)體 代碼在這里 時間復雜度是O(n) 思路 1:創(chuàng)建一個...
    齊葩閱讀 322評論 0 0
  • 原題: https://leetcode.com/problems/add-two-numbers/descrip...
    Azurelore閱讀 159評論 0 0
  • 一、題目——Add Two Numbers You are given twonon-emptylinked li...
    Juliiii閱讀 251評論 0 0
  • 早上吃了腐竹菜,喝了可樂姜絲湯 中午吃了兩排餅干 晚上吃了蔬菜和米飯 夜宵又吃了一排餅干 今天吃的太多了,尤其是晚...
    最佳姐妹閱讀 496評論 0 0
  • 好像想起他的次數(shù)變少了。當初那種幸福的感覺早已消失不見。曾經(jīng)那段時光真的很美好。可是畢業(yè)后。就再也沒有感受過那種沐...
    張夢蝶蝶蝶閱讀 236評論 0 0

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