File tree 1 file changed +51
-0
lines changed 1 file changed +51
-0
lines changed Original file line number Diff line number Diff line change
1
+ // /
2
+ // / LeetCode
3
+ // / By Reza Ebrahimi <reza.ebrahimi.dev@gmail.com>
4
+ // /
5
+ // / 2. Add Two Numbers
6
+ // / https://leetcode.com/problems/add-two-numbers
7
+ // /
8
+ // / Time Submitted | Status | Runtime | Memory | Language
9
+ // / 2020/03/11 | Accepted | 20 ms | 11.1 MB| cpp
10
+ // /
11
+ // / Runtime: 20 ms, faster than 98.04% of C++ online submissions for Add Two Numbers.
12
+ // / Memory Usage: 11.1 MB, less than 5.14% of C++ online submissions for Add Two Numbers.
13
+ // /
14
+
15
+
16
+
17
+ /*
18
+ Definition for singly-linked list.
19
+ struct ListNode {
20
+ int val;
21
+ ListNode *next;
22
+ ListNode(int x) : val(x), next(NULL) {}
23
+ };
24
+ */
25
+
26
+ #include < iostream>
27
+
28
+ class Solution {
29
+ public:
30
+ ListNode* addTwoNumbers (ListNode* l1, ListNode* l2) {
31
+ ListNode *main_node = new ListNode (0 );
32
+ ListNode *node = main_node;
33
+ int carry = 0 ;
34
+
35
+ while (l1 != nullptr || l2 != nullptr ) {
36
+ int val1 = l1 != nullptr ? l1->val : 0 ;
37
+ int val2 = l2 != nullptr ? l2->val : 0 ;
38
+
39
+ int sum = val1 + val2 + carry;
40
+ carry = sum / 10 ;
41
+
42
+ node->next = new ListNode (sum % 10 );
43
+ node = node->next ;
44
+
45
+ l1 = l1 != nullptr ? l1->next : nullptr ;
46
+ l2 = l2 != nullptr ? l2->next : nullptr ;
47
+ }
48
+ node->next = carry ? new ListNode (carry) : nullptr ;
49
+ return main_node->next ;
50
+ }
51
+ };
You can’t perform that action at this time.
0 commit comments