参考链接:力扣(LeetCode) 2. 两数相加 - 知乎 (zhihu.com)
题目:
思路:
1.设置三个空链表,一个出链表,两个进链表
2.因为是100之内的数字,所以可以(num1+num2)%10,if num1,num2 != null
3.考虑进位问题!
代码:
/**
* 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) {
ListNode result=new ListNode(0);//初始化一个空节点,初始赋值为0,指针指向为list
ListNode p=result;
int carry=0;
while(l1 !=null ||l2 !=null||carry>0){
int sum=(l1 == null ? 0 : l1.val)+(l2 ==null ? 0 :l2.val)+carry;
int tmp=sum%10;
carry=sum/10;
p.next=new ListNode(tmp);
p=p.next;
l1=(l1 == null ? l1 :l1.next);
l2=(l2 == null ? l2 :l2.next);
}
return result.next;
}
}