給你兩個 非空 的鍊錶,表示兩個非負的整數。它們每位數字都是按照 逆序 的方式儲存的,並且每個節點只能儲存 一位 數字。
請你將兩個數相加,並以相同形式返回乙個表示和的鍊錶。
你可以假設除了數字 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原...