国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

LeetCode題解-2-Add Two Numbers

2019-11-08 03:05:14
字體:
來源:轉載
供稿:網友

解題思路

這個題目也是比較簡單的。主要需要考慮的是如何處理l1和l2長度不一致的情況,進位的處理,還有特別考慮最后一次進位的情況。

為了簡化處理,我采用了一個啞結點作為head,用carry下次操作的進位值,默認是0. 然后從頭開始遍歷,每次的和等于上一次進位加上2個結點的值(如果存在的話),如果其中一個結點為空,就當值為0處理,直到2個結點都為空。最后2個結點為空時判斷進位是否為1,如果是就增加多一個結點。

最終,返回啞結點的下一個結點就可以了。

參考源碼

public class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode head = new ListNode(0); ListNode curr = head; int carry = 0; while (l1 != null || l2 != null) { int sum = carry; if (l1 != null) { sum += l1.val; l1 = l1.next; } if (l2 != null) { sum += l2.val; l2 = l2.next; } if (sum >= 10) { carry = 1; sum -= 10; } else { carry = 0; } curr.next = new ListNode(sum); curr = curr.next; } if (carry != 0) { curr.next = new ListNode(carry); } return head.next; }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 敦化市| 沙雅县| 稷山县| 灵璧县| 会东县| 红桥区| 肃北| 琼海市| 朝阳县| 同仁县| 慈溪市| 白朗县| 广宗县| 东辽县| 焦作市| 安仁县| 钟山县| 措美县| 石河子市| 平顺县| 山西省| 珲春市| 凤翔县| 平武县| 阳新县| 福海县| 林州市| 西青区| 西华县| 疏勒县| 雷州市| 五原县| 连平县| 东乌珠穆沁旗| 响水县| 珠海市| 石渠县| 庆城县| 和政县| 泌阳县| 疏附县|