[LeetCode] 2. Add Two Numbers java

    /**2. Add Two Numbers
     * @param l1
     * @param l2
     * @return 逆序的兩個數相加,保存個位數
     */
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        ListNode l3 = new ListNode(-1);
        ListNode head = l3;
        int sum = 0;
        while (l1 != null && l2 != null) {
            sum += l1.val + l2.val;
            ListNode cur = new ListNode(sum%10);
            l3.next = cur;
            sum = sum/10;
            l1 = l1.next;
            l2 = l2.next;
            l3 = l3.next;
        }
        while (l1 != null) {
            sum += l1.val;
            ListNode cur = new ListNode(sum%10);
            l3.next = cur;
            sum = sum/10;
            l1 = l1.next;
            l3 = l3.next;
        }
        while (l2 != null) {
            sum += l2.val;
            ListNode cur = new ListNode(sum%10);
            l3.next = cur;
            sum = sum/10;
            l2 = l2.next;
            l3 = l3.next;
        }
        if (sum != 0) {
            ListNode cur = new ListNode(sum);
            l3.next = cur;
        }
        return head.next;
    }
    //beats 24.21%,考慮sum最後不爲0的情況
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章