本文主要是介绍【程序员金典】链式A+B,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述
有两个用链表表示的整数,每个结点包含一个数位。这些数位是反向存放的,也就是个位排在链表的首部。编写函数对这两个整数求和,并用链表形式返回结果。
给定两个链表ListNode* A,ListNode* B,请返回A+B的结果(ListNode*)。
测试样例:
{1,2,3},{3,2,1}
返回:{4,4,4}
c++代码
/*
struct ListNode {int val;struct ListNode *next;ListNode(int x) : val(x), next(NULL) {}
};*/
class Plus {
public:ListNode* plusAB(ListNode* a, ListNode* b) {// write code hereif(a==nullptr)return b;if(b==nullptr)return a;ListNode* head=new ListNode(0);ListNode *p=head;int sum=0;while(a!=nullptr||b!=nullptr||sum!=0){if(a!=nullptr){sum=sum+a->val;a=a->next;}if(b!=nullptr){sum=sum+b->val;b=b->next;}p->next=new ListNode(sum%10);sum=sum/10;p=p->next;}return head->next;}
};
这篇关于【程序员金典】链式A+B的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!