LeetCode两数相加
生活随笔
收集整理的這篇文章主要介紹了
LeetCode两数相加
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、兩數相加
給你兩個 非空 的鏈表,表示兩個非負的整數。它們每位數字都是按照 逆序 的方式存儲的,并且每個節點只能存儲 一位 數字。
請你將兩個數相加,并以相同形式返回一個表示和的鏈表。
你可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。
示例1:
示例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
············題目數據保證列表表示的數字不含前導零
二、思路
同時遍歷兩個鏈表,計算他們的和,并加上上一位置的進位值;
代碼
public LinkedNode getSum(LinkedNode l1,LinkedNode l2) {LinkedNode head = null;LinkedNode tail = null;int result = 0;while (l1 != null || l2 != null) {int n1 = l1 != null ? l1.getData() : 0;int n2 = l2 != null ? l2.getData() : 0;int sum = n1 + n2 + result;if (head == null) {head = tail = new LinkedNode(sum % 10);}else {tail.setNext(new LinkedNode(sum % 10));tail = tail.getNext();}result = sum / 10;if (l1 != null) {l1 = l1.getNext();}if (l2 != null) {l2 = l2.getNext();}}if (result > 0) {tail.setNext(new LinkedNode(result));}return head;}總結
以上是生活随笔為你收集整理的LeetCode两数相加的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分析约瑟夫问题(循环单链表)
- 下一篇: 数组模拟栈