链表相加
两个链表个十百位分别相加,大于十则进一
class ListNode{
Object val;
ListNode next;
public ListNode(Object val) {
this.val=val;
}
@Override
public String toString() {
StringBuilder sb=new StringBuilder();
ListNode p=next;
while(p!=null) {
sb.append(p.val);
p=p.next;
}
return sb.toString();
}
}
public class plusLinkList{
public static ListNode plusAB(ListNode a,ListNode b){return plusAB(a,b,0);}
public static ListNode plusAB(ListNode a,ListNode b,int i){//i表示进位
int value=i;
if(a==null&&b==null&&i==0)return null;
if(a!=null)value+=(int)a.val;
if(b!=null)value+=(int)b.val;
ListNode result=new ListNode(value%10);//运算结果
result.next=plusAB(a==null?null:a.next,b==null?null:b.next,value>=10?1:0);
return result;
public static void main(String[] args) {//测试
ListNode node1=new ListNode(7);
node1.next=new ListNode(4);
node1.next.next=new ListNode(0);
node1.next.next.next=new ListNode(7);
node1.next.next.next.next=new ListNode(5);
System.out.println(node1);
ListNode node2=new ListNode(2);
node2.next=new ListNode(7);
node2.next.next=new ListNode(2);
node2.next.next.next=new ListNode(3);
node2.next.next.next.next=new ListNode(4);
System.out.println(node2);
ListNode result=plusAB(node1,node2);
System.out.println(result);
}
}