LeetCode4: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
解題思路:
這題相當於兩個大數相加,只不過這裡採用的連結串列的形式,而不是字串。
解題時最需注意的是,最後一個節點要考慮會不會進位,over =1時,需要增加一個節點。
實現程式碼:
#include <iostream> using namespace std; /** 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*/ struct 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; ListNode *l3 = newListNode(-1); ListNode *tnode = l3; int over = 0; while(l1 && l2) { int sum = l1->val + l2->val + over; ListNode *node = new ListNode(sum % 10); over = sum / 10; tnode->next = node; tnode = tnode->next; l1 = l1->next; l2 = l2->next; } if(l1 == NULL && l2 == NULL && over)//後一個節點,要考慮有沒進位 { ListNode *node = new ListNode(over); tnode->next = node; return l3->next; } ListNode *left = l1; if(l2) left = l2; while(left) { int sum = left->val + over; ListNode *node = new ListNode(sum % 10); over = sum / 10; tnode->next = node; tnode = tnode->next; left = left->next; } if(over)//同樣,最後一個節點,要考慮有沒進位 { ListNode *node = new ListNode(over); tnode->next = node; } return l3->next; } }; int main(void) { return 0; }
相關推薦
LeetCode4: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
leet code 002:Add Two Numbers ???未完成
face style left tar margin get http 完成 pac 0牟91嗽O8傭ND顧http://www.facebolw.com/space/2104672/follower 賾17拾95幾XN倮蒲http://www.facebolw.com/
LeetCode第二題:Add Two Numbers
ret lists exce sel onu plan each 們的 理解 You are given two non-empty linked lists representing two non-negative integers. The digits are st
Q2:Add Two Numbers
ont sts git put ever tps itself 結點 tree 2. Add Two Numbers 官方的鏈接:2. Add Two Numbers Description : You are given two non-empty linked list
leetcode-2:Add Two Numbers 兩數相加
題目: You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and
LeetCode2:Add Two Numbers
You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each o
【LeetCode & 劍指offer刷題】連結串列題9:Add Two Numbers
【LeetCode & 劍指offer 刷題筆記】目錄(持續更新中...) Add Two Numbers You are given two non-empty linked li
【LeetCode】LeetCode——第2題: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 dig
LeetCode-002:Add Two Numbers
題目: You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their node
LeetCode修仙:Add Two Numbers
problem: You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and ea
演算法分析與設計課程(1):Add Two Numbers
Description: You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and
演算法練習:Add Two Numbers
解題思路: (1)申請一個節點指標result,指向結果連結串列,另外申請一個節點指標,用於指向該連結串列。 (2)定義一個變數over,初始化為0。兩數之和大於等於10時, over賦值為1。 (3)遍歷l1和l2,p指向l1,q指向l2: a. 當兩者均不為空的時候,兩數相加,並判斷和是否大於等
LeetCode系列:2 Add Two Numbers
Q:You are given two non-empty linked lists representing two nonnegative integers. The digits are stored in reverse order and each of their nodes
【Coding Girl】LeetCode刷題: 2.兩數相加 Add Two Numbers
描述: 給定兩個非空連結串列來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回一個新的連結串列。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。 示例: 輸入:(2 -> 4 -> 3) + (5 -> 6
Leetcode題目訓練日記(Java實現):#2. Add Two Numbers
一、題目 You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each
LeetCode第二題:兩數相加(Add Two Numbers)
LeetCode第二題:兩數相加(python,java) You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse
題解——Leetcode 2. Add Two Numbers 難度:Medium
You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their
python寫演算法題:leetcode: 2. Add Two Numbers
https://leetcode.com/problems/add-two-numbers/#/description # Definition for singly-linked list. # class ListNode(object): # def __in
LeetCode 2:兩數相加 Add Two Numbers
給出兩個 非空 的連結串列用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一
LeetCode---------Add Two Numbers 解法
eve n-n pty lead http 順序 number sum represent You are given two non-empty linked lists representing two non-negative integers. The digits