題目
給定兩個鍊錶,分別表示兩個非負整數。他們的數字逆序儲存在鍊錶中,且每個節點只儲存乙個數字,計算兩個數的和,並且返回和的煉表頭指標。此題為簡單的數學加法計算和簡單的鍊錶操作的結合,很簡單,直接附上**如:輸入2->4->3、5->6->4,輸出:7->0->8
#include "stdafx.h"
#include typedef struct tagsnode
}snode;
void print(snode* phead)
snode* p = phead->pnext;
while(p)
printf("\n");
}snode* add(snode* phead1, snode* phead2)
// 處理較長的鏈
snode* p = p1 ? p1 : p2;
while (p)
// 處理最後可能有的進製
if (carry != 0)
return psum;
}void destory(snode* &phead)
snode* p = phead->pnext;
while(p)
delete phead;
phead = null;
}int _tmain(int argc, _tchar* argv)
snode* phead2 = new snode(0);
for(i = 0; i < 9; i++)
print(phead1);
print(phead2);
snode* psum = add(phead1, phead2);
print(psum);
destory(phead1);
destory(phead2);
destory(psum);
system("pause");
return 0;
}
注:這裡進製不可能大於1所以僅為可以用bool來表示
這個題目可以擴充套件成為乙個大整數加法運算和高精度小數運算。
leetcode 鍊錶相加
給定兩個用鍊錶表示的整數,每個節點包含乙個數字。這些數字是反向存放的,也就是個位排在鍊錶首部。編寫函式對這兩個整數求和,並用鍊錶形式返回結果。示例 輸入 7 1 6 5 9 2 即617 295 輸出 2 1 9,即912 採用原地演算法,比較兩個鍊錶長度,如果長度一致,那麼鍊錶相加到任一鍊錶,計算...
leetcode 2鍊錶相加
給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 ...
Leetcode NO 2 兩數相加 鍊錶相加
給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 ...