C語言 兩數相加

2021-10-16 01:40:58 字數 990 閱讀 3574

給你兩個 非空 的鍊錶,表示兩個非負的整數。它們每位數字都是按照 逆序 的方式儲存的,並且每個節點只能儲存 一位 數字。

請你將兩個數相加,並以相同形式返回乙個表示和的鍊錶。

你可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。

題解:1,依次判斷l1節點是否為空,不為空取出l1節點的數值

2,依次判斷l2節點是否為空,不為空取出l2節點的數值

3,將上述的數值和進製相加,相加和對10取餘存入新申請的節點,相加和除10儲存進製

4,l1和l2節點均掃完,最後判斷進製是否為1,有進製則最後加上

/**

* definition for singly-linked list.

* struct listnode ;

*/struct listnode* addtwonumbers(struct listnode* l1, struct listnode* l2)

if(pl2)

sum += flag;

struct listnode *node = (struct listnode *)malloc(sizeof(struct listnode));

node->val = sum %10;

flag = sum/10;

sum = 0;

node->next = null;

phead->next = node;

phead = node;

}if(flag == 1)

phead = head;

head = head->next;

free(phead);

return head;

}

注意:此處申請了乙個頭結點,最後返回的時候得釋放頭結點,不然會造成記憶體洩漏

兩數相加 c語言實現

給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8 原因 342 465 807 解題思路 我先開始的思路是,再建立乙個返回鍊...

兩數相加(力扣C語言)

給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。輸入 2 4 3 5 6 4 輸出 7 0...

LeetCode2兩數相加 C語言

給出兩個非空的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照逆序的方式儲存的,並且它們的每個節點只能儲存一位數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8原...