Add Two Numbers

來源:互聯網
上載者:User

標籤:des   style   blog   color   io   ar   for   div   sp   

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

 1 /** 2  * Definition for singly-linked list. 3  * struct ListNode { 4  *     int val; 5  *     ListNode *next; 6  *     ListNode(int x) : val(x), next(NULL) {} 7  * }; 8  */ 9 class Solution {10 public:11     ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) {12         13         ListNode *l3 = new ListNode(0);14         ListNode *p1 = l1;15         ListNode *p2 = l2;16         ListNode *p3 = l3;17         18         int carry = 0;19         int sum = 0;20         while(p1 != NULL && p2 != NULL)21         {22             sum = p1->val + p2->val + carry;23             ListNode *node = new ListNode(sum % 10);24             p3->next = node;25             p3 = node;26             27             carry = sum / 10;28             node = NULL;29             30             p1 = p1->next;31             p2 = p2->next;32         }33         34         while(p1 != NULL)35         {36             sum = p1->val + carry;37             ListNode *node = new ListNode(sum % 10);38             p3->next = node;39             p3 = node;40             41             carry = sum / 10;42             node = NULL;43             44             p1 = p1->next;45         }46         47         while(p2 != NULL)48         {49             sum = p2->val + carry;50             ListNode *node = new ListNode(sum % 10);51             p3->next = node;52             p3 = node;53             54             carry = sum / 10;55             node = NULL;56             57             p2 = p2->next;58         }59         60         if(carry != 0)61         {62             ListNode *node = new ListNode(carry);63             p3->next = node;64             p3 = node;65             66             node = NULL;67         }68         69         ListNode *del = l3;70         l3 = l3->next;71         delete del;72         73         return l3;74     }75 };

 

Add Two Numbers

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.