題目描述
給你兩個非空的鍊錶,表示兩個非負的整數。它們每位數字都是按照逆序的方式儲存的,並且每個節點只能儲存 一位 數字。
請你將兩個數相加,並以相同形式返回乙個表示和的鍊錶。
你可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。
示例
輸入:l1 = [2,4,3], l2 = [5,6,4]
輸出:[7,0,8]
解釋:342 + 465 = 807.
題目分析
加法運算,其中每個鍊錶表示乙個整數,以逆序儲存,也就是說鍊錶的head表示個位,按順序遍歷鍊錶已是對齊狀態,只需要考慮進製即可
解法1
鍊錶可能不一樣長,迴圈遍歷鍊錶對應部分,相加,存入result鍊錶,考慮進製問題,然後將剩餘部分放入result內,同時也需要考慮進製問題。最後還個小細節,什麼時候我們需要提前new出next?就是還有下乙個數需要放的時候,如果直接new出next不考慮條件,則結果尾部會多出乙個0,時間複雜度o(n)。
/*** definition for singly-linked list.
* public class listnode
* listnode(int val)
* listnode(int val, listnode next)
* } */
class
solution
l1 =l1.next;
l2 =l2.next;
}while (null !=l1)
l1 =l1.next;
}while (l2 != null
) l2 =l2.next;
}return
result;
}}
LeetCode2 兩數相加
嗯。今天兩個簡單題,我可能要墮落了 先貼第乙個 給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8原因 342 465 807...
LeetCode 2 兩數相加
題目 給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8 原因 342 465 807 解題 這題就比較簡單了,兩數相加處理好...
LeetCode 2 兩數相加
題目描述 給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。題目思路 先從最低有效位也就是列表 l1 和 l2 的表頭開始相加。由於每位數字都應當處於 0 9 的範圍內,我們計算...