LeetCode第二題 兩數相加

2021-09-27 03:03:08 字數 3091 閱讀 7382

給出兩個非空的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照逆序的方式儲存的,並且它們的每個節點只能儲存一位數字。

如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。

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

輸入:(2 -> 4 -> 3) + (5 -> 6 -> 4)

輸出:7 -> 0 -> 8

原因:342 + 465 = 807

此題其實就是簡單的把兩個鍊錶從左至右相加而已,相當於乙個特殊的加法運算

從左至右將兩個鍊錶上的每一位的數字相加

判斷相加後的值是否需要進製

返回最初宣告的陣列

不需要宣告新鍊錶的寫法:

class

listnode

}public

static listnode addlist

(listnode l1, listnode l2)

// 計算進製標記

if(num >9)

else

// 設定新的node

if(node.next != null)

else

if(l2.next != null)

else

// 如果l2為空

}else

else

}// 判斷是否為還有沒有處理完的元素

if(node.next == null)

break;}

node = node.next;}}

return l1;

}

宣告新鍊錶的寫法

class

solution

if(tempval >9)

l1 = l1 != null ? l1.next : null;

l2 = l2 != null ? l2.next : null;

node.next =

newlistnode

(tempval)

; node = node.next;}if

(addbit)

return returnnode.next;

}}

1. js
var

addtwonumbers

=function

(l1, l2)

else

node = node.next =

newlistnode

(sum);if

(l1) l1=l1.next;

if(l2) l2=l2.next;}if

(enter ===1)

return result.next;

};

2. python
class

listnode

:def

__init__

(self, x)

: self.val = x

self.

next

=none

class

solution

:def

addtwonumbers

(self, l1: listnode, l2: listnode)

-> listnode:

add_bit =

false

node = l1

while l1 is

notnone

:if l2 is

notnone

: temp_val = l1.val + l2.val

if add_bit:

temp_val = temp_val +

1 add_bit =

false

if temp_val >9:

temp_val = temp_val -

10 add_bit =

true

l1.val = temp_val

if l1.

next

isnot

none

: l1 = l1.

next

l2 = l2.

next

elif l2.

next

isnot

none

: l1.

next

= l2.

next

l1 = l1.

next

l2 =

none

else

:break

else

: temp_val = l1.val

if add_bit:

temp_val = temp_val +

1 add_bit =

false

if temp_val >9:

temp_val = temp_val -

10 add_bit =

true

l1.val = temp_val

if l1.

next

isnone

:break

else

: l1 = l1.

next

if add_bit:

l1.next

= listnode(1)

return node

leetcode第二題直達車

我的個人部落格,有空來坐坐

Leetcode 第二題 兩數相加

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

Leetcode 第二題 兩數相加

按照平常的整數加法計算即可,則結果的第 i 位數字等於鍊錶a的第 i 位的值加上鍊表b的第 i 位的值 再加上第 i 1 位的進製,即是結果的第 i 位,然後再求得本位的進製,將結果的節點 加入新鍊錶即可。何時應該結束迴圈呢?容易想到,當兩個鍊錶都為空時,應該結束迴圈,其實 這是錯誤的,還應該再判斷...

leetcode 第二題 兩數相加 java

class solution else x 0 if l2 null else y 0 int sum x y h r sum 10 h sum 10 current.next new listnode r current current.next if h 0 return list.next 主...