编辑代码

#include <iostream>
using namespace std;
struct ListNode {
      int val;
      ListNode *next;
      ListNode() : val(0), next(nullptr) {}
      ListNode(int x) : val(x), next(nullptr) {}
      ListNode(int x, ListNode *next) : val(x), next(next) {}
  };

ListNode* addTwoNumbers(ListNode* p, ListNode* q) {
    ListNode* r;
    int c = 0; 
    while(p != NULL || q != NULL)
    {
        c += (p == NULL ? 0 : p->val) + (q == NULL ?  0 : q->val);
        r = new ListNode(c%10);
        c /= 10;
        r = r->next, p = (p == NULL ? NULL : p -> next),q = (q == NULL? NULL : q-> next);
    }
    if(c != 0)
        r = new ListNode(c);
    return r;
    }

int main() {
    ListNode * l1, * l2;
    l1 = new ListNode(3);
    l2 = new ListNode(5);
    ListNode * l3 = addTwoNumbers(l1,l2);
    cout<<l3->val;
	return 0;
}