码迷,mamicode.com
首页 > 其他好文 > 详细

[LeetCode] Add Two Numbers

时间:2015-03-08 00:02:05      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:

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         ListNode *head = new ListNode(0);
13         ListNode *p = head, *p1 = l1, *p2 = l2;
14         int val, val1, val2;
15         int carry = 0;
16         while (p1 != NULL || p2 != NULL) {
17             val1 = val2 = 0;
18             if (p1 != NULL) {
19                 val1 = p1->val;
20                 p1 = p1->next;
21             }
22             if (p2 != NULL) {
23                 val2 = p2->val;
24                 p2 = p2->next;
25             }
26             val = val1 + val2 + carry;
27             carry = val / 10;
28             val %= 10;
29             p->next = new ListNode(val);
30             p = p->next;
31         }
32         if (carry != 0) {
33             p->next = new ListNode(carry);
34         }
35         ListNode *sum = head->next;
36         delete head;
37         return sum;
38     }
39 };

 

[LeetCode] Add Two Numbers

标签:

原文地址:http://www.cnblogs.com/easonliu/p/4321131.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!