国产探花免费观看_亚洲丰满少妇自慰呻吟_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; }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 澄江县| 吉隆县| 临朐县| 连州市| 遂宁市| 论坛| 荆门市| 和顺县| 贵阳市| 黄大仙区| 盱眙县| 于都县| 兖州市| 绥德县| 平陆县| 仙居县| 新郑市| 册亨县| 壤塘县| 南溪县| 南岸区| 大连市| 奉化市| 灵石县| 绵竹市| 永平县| 长沙市| 合阳县| 洛隆县| 辰溪县| 南岸区| 越西县| 兴国县| 黑龙江省| 密云县| 新巴尔虎右旗| 福安市| 新乡市| 肥城市| 科技| 海口市|