給你兩個 非空 的鍊錶,表示兩個非負的整數。它們每位數字都是按照 逆序 的方式儲存的,並且每個節點只能儲存 一位 數字。
請你將兩個數相加,並以相同形式返回乙個表示和的鍊錶。
你可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。
/**
* definition for singly-linked list.
* type listnode struct
*/func
addtwonumbers
(l1 *listnode, l2 *listnode)
*listnode
midnode := res
num = l1.val + l2.val + tmp
tmp = num/
10 num = num%
10 res.val = num
l1=l1.next
l2=l2.next
for;l1!=
nil|| l2!=
nil;
else
if l1 !=
nilelse
tmp = num/
10 num = num%
10
tmpnode :=
&listnode
midnode.next = tmpnode
midnode = midnode.next
midnode.val = num
if l1 !=
nilif l2 !=
nil}
if tmp !=
0 midnode.next = tmpnode
midnode = midnode.next
midnode.val = tmp
}return res
}
定義乙個函式,輸入乙個鍊錶的頭節點,反轉該鍊錶並輸出反轉後鍊錶的頭節點。
/**
* definition for singly-linked list.
* type listnode struct
*/func
reverselist
(head *listnode)
*listnode
pre :=
&listnode
pre =
nil pcu := head
pn := head.next
for;pcu.next !=
nil;
pcu.next = pre
return pcu
}補充**:
func
reverselist
(head *listnode)
*listnode
var pre *listnode
for head !=
nilreturn pre
}
兩數相加 鍊錶
給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 ...
兩煉表數相加
給出兩個非空的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照逆序的方式儲存的,並且它們的每個節點只能儲存一位數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8 ...
鍊錶兩數相加
給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 ...