###### tags: `LeetCode` `Medium` `Linked List` # LeetCode #2 [Add Two Numbers](https://leetcode.com/problems/add-two-numbers/) ### (Medium) 給你兩個 非空 的鏈結串列,表示兩個非負的整數。它們每位數字都是按照 逆序 的方式存儲的,並且每個節點只能存儲 一位 數字。 請你將兩個數相加,並以相同形式返回一個表示和的鏈結串列。 你可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。 --- 記得進位。 --- ``` /** * Definition for singly-linked list. * 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) {} * }; */ class Solution { public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { ListNode *ans = nullptr, *prev = nullptr, *tmp = nullptr; int c = 0; while(l1||l2){ int n = (l1?l1->val:0) + (l2?l2->val:0) + c; c = (n>=10); n = n%10; l1 = l1?l1->next:nullptr; l2 = l2?l2->next:nullptr; tmp = new ListNode(n); if(!prev)ans = tmp; else prev->next = tmp; prev = tmp; } if(c==1){ prev->next = new ListNode(1); } return ans; } }; ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up