Leetcode_2_Add Two Numbers
Add Two Numbers
You are given two linked lists representing two non-negative numbers. the digits are stored in reverse order and each of their nodes contain a single digit. add the two numbers and return it as a linked list.
Input: (2-> 4-> 3) + (5-> 6-> 4)
Output: 7-> 0-> 8
class Solution {public: ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) { if(l1==NULL && l2==NULL)return NULL;if (l1==NULL)return l2;if (l2==NULL)return l1;ListNode *head = NULL , *pre = NULL;int c=0;while( l1!=NULL || l2!=NULL || c!=0 ){if(l1!=NULL){c += l1->val;l1 = l1->next;}if(l2!=NULL){c += l2->val;l2 = l2->next;}ListNode *p = new ListNode(c%10);if(head == NULL)head = p;elsepre->next = p;pre = p;c /= 10;}return head; }};
#include
using namespace std;#define N 3struct ListNode {int val;ListNode *next;ListNode(int x) : val(x), next(NULL) {}};class Solution {public: ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) { if(l1==NULL && l2==NULL)return NULL;if (l1==NULL)return l2;if (l2==NULL)return l1;ListNode *head = NULL , *pre = NULL;int c=0;while( l1!=NULL || l2!=NULL || c!=0 ){if(l1!=NULL){c += l1->val;l1 = l1->next;}if(l2!=NULL){c += l2->val;l2 = l2->next;}ListNode *p = new ListNode(c%10);if(head == NULL)head = p;elsepre->next = p;pre = p;c /= 10;}return head; }};ListNode *creatlist(){ListNode *head=NULL;for(int i=0; i
>a;ListNode *p;p = (ListNode*)malloc(sizeof(ListNode));p->val = a;p->next = head;head = p;}return head;}int main(){ListNode *list1 = creatlist();ListNode *list2 = creatlist();Solution lin;ListNode *outlist = lin.addTwoNumbers( list1,list2 );for(int i=0; i
val;outlist = outlist->next;}}