1. 程式人生 > >LeetCode4:Add Two Numbers

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 = new
ListNode(-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; }

相關推薦

LeetCode4Add 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 002Add 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

Q2Add 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-2Add Two Numbers 兩數相加

題目: You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and

LeetCode2Add 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刷題】連結串列題9Add 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-002Add 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