题目大意:给出两个链表,反过来之后分别代表两个整数,比如2->4->3(342),5->6->4(465),结果返回一个链表,代表所给两个链表之和
分析:链表的考察。需要掌握链表的建立。
代码:
/**
* 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* dummy = new ListNode(0); //答案的头结点
ListNode* head = dummy; //牵引指针
int carry = 0;
while(l1 || l2 || carry){
int num = (l1?l1->val:0) + (l2?l2->val:0) + carry; //当前节点数值
head->next = new ListNode(num % 10);
head = head->next;
carry = num / 10;
l1 = l1?l1->next:NULL;
l2 = l2?l2->next:NULL;
}
return dummy->next;
}
};