題目:
只需要考慮每位加和以及每位進製情況,所以總共有3種情況:
p1表長等於p2;p1表長大於p2;p1表長小於p2.
1.p1表長等於p2
if
(p1!=
null
&&p2!=
null
)
2.p1表長大於p2
if
(p1!=
null
)
2.p1表長小於p2
if
(p2!=
null
)
每位皆判斷是否進製
p->next=
null
; p=l;
while
(p->next!=
null
)else
carry_over=0;
p=p->next;
}
判斷最高位是否進製
if
(carry_over ==1)
以上就是本題思路
/**
* definition for singly-linked list.
* struct listnode ;
*/struct listnode*
addtwonumbers
(struct listnode* l1,
struct listnode* l2)
else
if(p1!=
null
)else
if(p2!=
null)}
//進製處理
p->next=
null
; p=l;
while
(p->next!=
null
)else
carry_over=0;
p=p->next;}if
(carry_over ==1)
return l->next;
}
力扣兩數相加
描述 給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。示例 輸入 2 4 3 5 6 4 輸出 7 0 8 definition for singl...
力扣 兩數相加
給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 ...
力扣第2題兩數相加
給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 個人解法 因為需要相加的兩個數逆序輸...