CC150-链表4

给定两个用链表表示的证书,每个节点包含一个数位,反向存放,也就是个位排在链表首部并返回结果

迭代:

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;
}

posted @ 2015-08-20 02:26  haochen_Mark  阅读(105)  评论(0编辑  收藏  举报