兩數相加(鍊錶)

2021-09-30 00:25:36 字數 830 閱讀 1728

測試用例先行考慮:

輸入:null + null

輸出:null

輸入:null + (1 -> 2)

輸出:1 -> 2

輸入:(7 -> 2) + (4 -> 2) (最高位進製)

輸出:1 -> 1 -> 4

輸入:(7 -> 2 -> 4 -> 3) +( 5 -> 6 -> 4) (一般用例)

輸出:7 -> 8 -> 0 -> 7

分析:模仿加法思路,從低位開始,而鍊錶為單向,所以可以用棧結構儲存這些數值,每次將棧頂元素相加,有進製則儲存,直到兩個棧為空及沒有進製為止。

/**

* definition for singly-linked list.

* public class listnode

* }*/class

solution

while

(l2 != null)

listnode head =

newlistnode(-

1);int carry =0;

while

(!stack_a.

empty()

||!stack_b.

empty()

|| carry==1)

else

listnode node =

newlistnode

(sum)

; node.next = head.next;

head.next = node;

}return head.next;

}}

兩數相加 鍊錶

給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 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 輸出 ...