Add Two Numbers

来源:互联网 发布:linux 网卡物理地址 编辑:程序博客网 时间:2024/06/05 20:07

问题:给定两个单向链表,链表元素为整型,链表从表头开始顺序存储了一个整数的低位到高位的各个位,求这两个链表所代表的两个数的和。

这个意思,123 + 456

链表LA:3->2->1

链表LB:6->5->4

和为LC:9->-7->5

code:

class Solution {public:ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) {int carray = 0;ListNode *head = new ListNode(-1);ListNode *tail = head;while (l1 != NULL && l2 != NULL){ListNode *cur = new ListNode((l1->val + l2->val + carray) % 10);tail->next = cur;tail = cur;carray = (l1->val + l2->val + carray) / 10;l1 = l1->next;l2 = l2->next;}while (l1 != NULL){ListNode *cur = new ListNode((l1->val + carray) % 10);tail->next = cur;tail = cur;carray = (l1->val + carray) / 10;l1 = l1->next;}while (l2 != NULL){ListNode *cur = new ListNode((l2->val + carray) % 10);tail->next = cur;tail = cur;carray = (l2->val + carray) / 10;l2 = l2->next;}if (carray){ListNode *cur = new ListNode(carray);tail->next = cur;}tail = head;head = head->next;delete tail;return head;}};


0 0
原创粉丝点击