/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
public class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode head =new ListNode(0);
ListNode point =head;
int carry=0;
if((l1==null) &&(l2==null) ){ //错误写法1:将==写成=;错误2:令l1.val=null,类型不匹配
return null;//都没有数,返回空值,而非返回值为0的指针point(0)
}
while((l1!=null )&& (l2!=null)){
int sum=carry+l1.val+l2.val;
point.next=new ListNode(sum%10);//除10后的余数,把值赋给下一个结点
carry=sum/10;//判断有无进位
point=point.next;
l1=l1.next;
l2=l2.next;
}
while(l1!=null){
int sum=carry+l1.val;
point.next=new ListNode(sum%10);
carry=sum/10;
point=point.next;
l1=l1.next;
}
while(l2!=null){
int sum=carry+l2.val;
point.next=new ListNode(sum%10);
carry=sum/10;
point=point.next;
l2=l2.next;
}
//最后还要判断一下carry是否还有进位
if(carry!=0){
point.next=new ListNode(carry);
}
return head.next;
}
}
leetcode 练习——add two numbers (Java)
最新推荐文章于 2020-05-01 11:54:10 发布