您的位置:首页 > 其它

链式A+B

2015-08-24 19:00 267 查看


题目描述

有两个用链表表示的整数,每个结点包含一个数位。这些数位是反向存放的,也就是个位排在链表的首部。编写函数对这两个整数求和,并用链表形式返回结果。

给定两个链表ListNode* A,ListNode* B,请返回A+B的结果(ListNode*)。
测试样例:
{1,2,3},{3,2,1}

返回:{4,4,4}

public class Plus {
//链式A+B
public ListNode plusAB(ListNode a, ListNode b) {
// write code here
if(a == null && b == null){
return null;
}
if(a == null)return b;
if(b == null)return a;

ListNode res = new ListNode(0);
ListNode ap = a;
ListNode bp = b;
ListNode result = res;

int flag = 0;
int value;
int val1;
int val2;

while(ap!=null || bp!=null || flag!=0){
val1 = (ap == null ? 0 : ap.val);
val2 = (bp == null ? 0 : bp.val);
value = val1 + val2 + flag;

flag = value/10;

ListNode node = new ListNode(value%10);
res.next = node;
res = res.next;
ap = (ap == null ? null:ap.next);
bp = (bp == null ? null:bp.next);
}
return result.next;
}
}


[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: