leetcode之链表求和

【leetcode之链表求和】给定两个用链表表示的整数,每个节点包含一个数位。
这些数位是反向存放的,也就是个位排在链表首部。
编写函数对这两个整数求和,并用链表形式返回结果。
简要题解直接相加即可; 代码如下

/** * Definition for singly-linked list. * struct ListNode { *int val; *ListNode *next; *ListNode(int x) : val(x), next(NULL) {} * }; *//** * Definition for singly-linked list. * struct ListNode { *int val; *ListNode *next; *ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { ListNode *head = new ListNode(-1), *p1 = l1, *p2 = l2, *p = head; int sum = 0, carr = 0; while (p1 || p2 || carr) { sum = 0; if(p1) { sum += (p1->val); p1 = p1->next; } if(p2) { sum += (p2->val); p2 = p2->next; } sum += carr; ListNode *t = new ListNode(sum % 10); carr = sum / 10; p->next = t; p = p->next; } return head->next; } };

    推荐阅读