class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
}
// 执行用时 :11 ms, 在所有Java提交中击败了54.93%的用户
// 内存消耗 :43.7 MB, 在所有Java提交中击败了88.09%的用户
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode pre=new ListNode(0) ;//new一个新的链表pre指向链表头
ListNode cur=pre ;
int carry =0;//进位标记符
while(l1 != null || l2 != null) {//当两个链表.next域均为null,相加结束
int x1=0, x2=0;//从链表头开始诸位相加
if(l1!=null){
x1=l1.val ;
l1=l1.next ;
}
if(l2!=null){
x2=l2.val ;
l2=l2.next ;
}
int num=x1+x2+carry;//本位相加再加进位carry
carry =num/10;
num%=10;
cur .next =new ListNode(num) ;//链表赋值;
cur =cur .next ;
}
if(carry ==1){//进位
cur .next =new ListNode(1) ;
}
return pre;
}
链表数字相加
最新推荐文章于 2024-05-31 01:06:50 发布