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


//給你兩個 非空 的鏈表,表示兩個非負的整數。它們每位數字都是按照 逆序 的方式存儲的,並且每個節點只能存儲 一位 數字。
//
// 請你將兩個數相加,並以相同形式返回一個表示和的鏈表。
//
// 你可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。
//
//
//
// 示例 1:
//
//
//輸入:l1 = [2,4,3], l2 = [5,6,4]
//輸出:[7,0,8]
//解釋:342 + 465 = 807.
//
//
// 示例 2:
//
//
//輸入:l1 = [0], l2 = [0]
//輸出:[0]
//
//
// 示例 3:
//
//
//輸入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]
//輸出:[8,9,9,9,0,0,0,1]
//
//
//
//
// 提示:
//
//
// 每個鏈表中的節點數在范圍 [1, 100] 內
// 0 <= Node.val <= 9
// 題目數據保證列表表示的數字不含前導零
//
// Related Topics 遞歸 鏈表 數學
// 👍 5539 👎 0


//leetcode submit region begin(Prohibit modification and deletion)

import java.util.List;

/**
 * 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 addTwoNumbers(ListNode l1, ListNode l2) {
        // 相加后位上的數
        int n = 0;
        //n1 n2接收者
        int n1 = 0;
        int n2 = 0;
        //ca 是否進位
        int ca = 0;
        ListNode c1 = l1;
        ListNode c2 = l2;
        ListNode pre = null;
        ListNode node = null;
        while (c1 != null || c2 != null) {
            n1 = c1 != null ? c1.val : 0;
            n2 = c2 != null ? c2.val : 0;
            n = n1 + n2 + ca;
            pre = node;
            node = new ListNode(n % 10);
            node.next = pre;
            ca = n / 10;
            c1 = c1 != null ? c1.next : null;
            c2 = c2 != null ? c2.next : null;
        }
        if (ca == 1) {
            pre = node;
            node = new ListNode(1);
            node.next = pre;
        }
        return reverseList(node);
    }


    public static ListNode reverseList(ListNode node) {
        ListNode pre = null;
        ListNode cur = node;
        ListNode nodeRes = null;
        while (cur != null) {
            ListNode temp = cur.next;
            pre = nodeRes;
            nodeRes = new ListNode(cur.val);
            nodeRes.next = pre;
            pre=cur;
            cur = temp;
        }
        return nodeRes;
    }
}
//leetcode submit region end(Prohibit modification and deletion)

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 給出兩個 非空 的鏈表用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式存儲的,並且它們的每個節點只能存儲 一位 數字。 如果,我們將這兩個數相加起來,則會返回一個新的鏈表來表示它們的和。 給出兩個 非空 的鏈表用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式存儲的,並且它們的每個節點只能存儲 一位 數字。 如果,我們將這兩個數相加起來,則會返回一個新的鏈表來表示它們的和。 給定兩個非空鏈表來表示兩個非負整數。位數按照逆序方式存儲,它們的每個節點只存儲單個數字。將兩數相加返回一個新的鏈表。 Leetcode練習(Python):第66題:給定一個由整數組成的非空數組所表示的非負整數,在該數的基礎上加一。 最高位數字存放在數組的首位, 數組中每個元素只存儲單個數字。 你可以假設除了整數 0 之外,這個整數不會以零開頭。 給定一個非負整數 num,反復將各個位上的數字相加,直到結果為一位數。 給定一個非負整數 num,反復將各個位上的數字相加,直到結果為一位數 給定一個由整數組成的非空數組所表示的非負整數,在該數的基礎上加一 Leetcode練習(Python):字符串類:第43題:字符串相乘:給定兩個以字符串形式表示的非負整數 num1 和 num2,返回 num1 和 num2 的乘積,它們的乘積也表示為字符串形式。 Leetcode練習(Python):數組類:第42題:給定 n 個非負整數表示每個寬度為 1 的柱子的高度圖,計算按此排列的柱子,下雨之后能接多少雨水。 java實現兩個整數相除保留一位小數
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM