leetcode解題之兩數相加 II

2021-10-05 01:53:53 字數 1186 閱讀 7377

給你兩個 非空 鍊錶來代表兩個非負整數。數字最高位位於鍊錶開始位置。它們的每個節點只儲存一位數字。將這兩數相加會返回乙個新的鍊錶。

你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。

高階:如果輸入鍊錶不能修改該如何處理?換句話說,你不能對列表中的節點進行翻轉。

示例:

輸入:(7-

>2-

>4-

>3)

+(5-

>6-

>4)

輸出:7

->8-

>0-

>

7

之前有數字從低位開始的兩數相加的鍊錶,所以使用鍊錶反轉後再相加的方法

/**

* definition for singly-linked list.

* public class listnode

* }*/class

solution

//反轉鍊錶

private listnode reverselistnode

(listnode node)

return prenode;

}//鍊錶表示的數字是從低位開始時

private listnode help

(listnode l1,listnode l2)

if(num>0)

return ansnode.next;

}}

方法二不反轉鍊錶,使用棧或者陣列都可以,下面是使用棧的方式,主要考慮是棧的特性是先進後出

/**

* definition for singly-linked list.

* public class listnode

* }*/class

solution

while

(l2!=null)

int num =0;

//儲存進製

listnode prenode = null;

while

(!s1.

isempty()

||!s2.

isempty()

||num>0)

return prenode;

}}

LeetCode 解題筆記 兩數相加

給出兩個非空的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。難度 中等 這道題目leetcode給的難度是...

LeetCode之兩數相加

給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 7...

LeetCode之兩數相加

leetcode之兩數相加 給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2...