leetcode 2. 两数相加
生活随笔
收集整理的這篇文章主要介紹了
leetcode 2. 两数相加
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
難度:中等
頻次:72
給你兩個 非空 的鏈表,表示兩個非負的整數。它們每位數字都是按照 逆序 的方式存儲的,并且每個節點只能存儲 一位 數字。
請你將兩個數相加,并以相同形式返回一個表示和的鏈表。
你可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。
注意:不要受逆序影響,他本來就是為了你方便做,給你逆序的。
解題思路:遍歷【按加法運算來即可】
注意
- //先算個位,個位值不影響進位value=(add+t1+t2)%10; //而進位會影響進位add=(add+t1+t2)/10; 這兩個位置不能更換,一換就會報錯。
代碼
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val = val; }* ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/ class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {int add=0;int value=0;int t1=0,t2=0;ListNode dummyhead=new ListNode(-1);ListNode p=dummyhead;//每一個節點相加,判斷值,如果大于10,就插入尾數,進位要累加到下一個節點while(l1!=null||l2!=null){if(l1==null){t1=0;t2=l2.val;l2=l2.next;}else if(l2==null){t2=0;t1=l1.val;l1=l1.next;}else {t1=l1.val;l1=l1.next;t2=l2.val;l2=l2.next;}//先算個位,個位值不影響進位value=(add+t1+t2)%10; //而進位會影響進位add=(add+t1+t2)/10; ListNode temp=new ListNode(value);p.next=temp;p=temp;}if(add==1) {ListNode temp=new ListNode(add);p.next=temp;}return dummyhead.next;} } 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的leetcode 2. 两数相加的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: leetcode 8. 字符串转换整数
- 下一篇: leetcode 151. 翻转字符串里