思路:
简单题。如果你会两个数组代表的数相加。你也会这个。。
/**
* 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) {
int aux=0;
ListNode resultHead=null;
ListNode result=null;
int tempNumber=l1!=null?l1.val:0;
int tempNumber2=l2!=null?l2.val:0;
resultHead=new ListNode(tempNumber+tempNumber2);
aux=resultHead.val/10;
resultHead.val=resultHead.val%10;
l1=l1.next;
l2=l2.next;
result=resultHead;
while(l1!=null&&l2!=null)
{
result.next=new ListNode(aux+l1.val+l2.val);
aux=result.next.val/10;
result.next.val=result.next.val%10;
result=result.next;
l1=l1.next;
l2=l2.next;
}
ListNode rest;
if(l1==null)
{
rest=l2;
}
else
{
rest=l1;
}
while(rest!=null)
{
result.next=new ListNode(aux+rest.val);
aux=result.next.val/10;
result.next.val=result.next.val%10;
rest=rest.next;
result=result.next;
}
if(aux!=0)
{
result.next=new ListNode(aux);
aux=0;
result=result.next;
}
result.next=null;
return resultHead;
}
}
本文详细解释了如何使用链表实现两个数字相加的基本算法,包括初始化、遍历链表、进位处理以及特殊情况处理。
177

被折叠的 条评论
为什么被折叠?



