/**
* definition for singly-linked list.
* type listnode struct
*/func addtwonumbers(l1 *listnode, l2 *listnode) *listnode
tail := head
begin:
if l1 != nil || l2 != nil || carry == 1 else
if l2 == nil else
tmpsum = tmpl1 + tmpl2 + carry
carry = tmpsum / 10
tmpsum %= 10
if flag else
// tail = head
// for tail.next != nil
tail.next = node
tail = tail.next
} goto begin
} else
}
1、第乙個問題是在產生返回的鍊錶的時候,總是只有第乙個節點,而沒有後面的結點,node1->nil
原因是在**中使用了head和tail的方法,思路是在將tail->next設定為新的值之後,再將tail指向他,可能是這個順序搞錯了
2、第二個問題是當兩個加數分別為5和5的時候,在第乙個條件判斷`if l1!=nil || l2!=nil || carry==1`這個地方,由於少加了最後乙個條件carry==1,那麼如果兩個加數都為5,得出的結果就是0了。
LeetCode之兩數相加
給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 7...
LeetCode之兩數相加
leetcode之兩數相加 給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2...
leetcode之兩數相加
給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。輸入 2 4 3 5 6 4 輸出 7 0...