1. 程式人生 > 遊戲 >《拳皇15》發售日新增角色等情報提前洩露

《拳皇15》發售日新增角色等情報提前洩露

2.兩數相加

題目描述

給你兩個 非空 的連結串列,表示兩個非負的整數。它們每位數字都是按照 逆序 的方式儲存的,並且每個節點只能儲存 一位 數字。

請你將兩個數相加,並以相同形式返回一個表示和的連結串列。

你可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。

思路

兩條連結串列直接原地相加,順便檢查是否要進位。

程式碼

public static ListNode02 addTwoNumbers(ListNode02 l1, ListNode02 l2){
    ListNode02 head = l1;
    while (l1.next != null && l2.next != null){
        l1.val += l2.val;
        //進位判斷
        if (l1.val>= 10){
            l1.val %= 10;
            l1.next.val++;
        }
        l1 = l1.next;
        l2 = l2.next;
    }
    //最後一個數
    l1.val += l2.val;

    if (l1.next == null){
        l1.next = l2.next;
    }
    //直接從末尾開始
    ListNode02 ptr = l1;
    while (ptr != null){
        if (ptr.val>=10){
            ptr.val %= 10;
            if (ptr.next != null){
                ptr.next.val++;
            }else{
                ptr.next = new ListNode02(1);
                break;
            }
        }
        ptr = ptr.next;
    }
    return head;
}