class
solution
while
(l2)
int carry =0;
listnode* ans =
nullptr
;while
(!s1.
empty()
or!s2.
empty()
or carry !=0)
return ans;}}
;//leetcode-cn.com/problems/add-two-numbers-ii/solution/liang-shu-xiang-jia-ii-by-leetcode-solution/
遍歷鍊錶,把各位數字壓棧
依次取棧頂元素,相加,建立鍊錶節點,加入鍊錶
返回新煉表頭指標
/**
* definition for singly-linked list.
* struct listnode
* };
*/class
solution
return num;
} listnode*
addtwonumbers
(listnode* l1, listnode* l2)
elseif(
!num1.
empty()
)elseif(
!num2.
empty()
)//比如99 + 7
//sum % 10 + carry有可能大於9!!
//curr = new listnode(sum % 10 + carry); //錯誤寫法
int actual_sum = sum + carry;
curr =
newlistnode
(actual_sum %10)
; carry = actual_sum /10;
curr-
>next = ptr;
ptr = curr;
}//處理例如 5 + 5的情況,不然就丟掉了進製的1
if(carry !=0)
return ptr;}}
;
leetcode 445 兩數相加 II
給定兩個非空鍊錶來代表兩個非負整數。數字最高位位於鍊錶開始位置。它們的每個節點只儲存單個數字。將這兩數相加會返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。輸入 7 2 4 3 5 6 4 輸出 7 8 0 7 分別遍歷兩個鍊錶,將鍊錶代表的數存於a,b 根據a,b的和,用...
Leetcode445 兩數相加 II
給定兩個非空鍊錶來代表兩個非負整數。數字最高位位於鍊錶開始位置。它們的每個節點只儲存單個數字。將這兩數相加會返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。高階 如果輸入鍊錶不能修改該如何處理?換句話說,你不能對列表中的節點進行翻轉。示例 輸入 7 2 4 3 5 6 4 ...
LeetCode 445 兩數相加II(Java)
給定兩個非空鍊錶來代表兩個非負整數。數字最高位位於鍊錶開始位置。它們的每個節點只儲存單個數字。將這兩數相加會返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。高階 鍊錶不能修改該,換句話說,你不能對列表中的節點進行翻轉。示例 輸入 7 2 4 3 5 6 4 輸出 7 8 0...