题意:
给你两个链表,代表两个整数(头为低位,尾为高位),让你对这两个数,进行加法运算,并以相同的形式存在链表中。
思路:
从头部同时遍历,把两个值加起来存到新链表中,注意考虑最后剩一个进位的情况,,///现在开始使用java刷题,熟悉一下java,,不知道定义一个对象时必须要new,,和c++不一样啊=。=,,类里的ListNode next没有生成对象,,不new而直接 temp = temp.next的话会造成空指针错误,,
java代码:
class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
if(l1==null)
return l2;
if(l2==null)
return l1;
ListNode head = new ListNode(0); ///new new new
int sum = 0;
ListNode temp = head;
while(l1!=null||l2!=null){
if(l1!=null){
sum += l1.val;
l1 = l1.next;
}
if(l2!=null){
sum += l2.val;
l2 = l2.next;
}
temp.next = new ListNode(sum%10); new new new
temp = temp.next;
sum/=10;
}
if(sum>0){
temp.next = new ListNode(1);
}
return head.next;
}
}