标签:
给定两个用链表表示的证书,每个节点包含一个数位,反向存放,也就是个位排在链表首部并返回结果
迭代:
1.增加一个ArrayList数据结构用来临时保存每一位的加和结果
2.之后分别遍历L1和L2两个链表将两个链表中的值相加
3.将多出的位数加入ArrayList之后反向输出。
递归:
public static LinkListNode addTwoLinkListNode(LinkListNode l1, LinkListNode l2, int carry){
if(l1==null&&l2==null&&carry==0) return null;
LinkListNode result = new LinkListNode();
int value = carry;
if(l1!=null){
value +=l1.data;
}
if(l2!=null){
value +=l2.data;
}
result.data = value%10;
LinkListNode more = addTwoLinkListNode(l1==null?null:l1.next, l2==null?null:l2.next,value>=10?1:0);
result.setNext(more);
return result;
}
标签:
原文地址:http://www.cnblogs.com/whaochen/p/4743973.html