02兩數相加

2021-10-02 08:18:37 字數 2655 閱讀 5234

python 實現

參考文獻

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

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

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

example: (2 -> 4 -> 3) + (5 -> 6 -> 4)

return 7 -> 0 -> 8

原因:342 + 465 = 807

將長度較短的鍊錶在末尾補零使得兩個連表長度相等,再乙個乙個元素對其相加(考慮進製)
/**

* definition for singly-linked list.

* struct listnode

* };

*/class solution

while (q->next!=null)

//在較短的鍊錶末尾新增0

if (len1>=len2)

}else

}//對齊相加考慮進製

p=l1;

q=l2;

listnode *result=new listnode(-1);//存放結果的鍊錶

listnode *l3=result;//result的移動指標(l3)

int iscarry=0;//是否進製

while((p!=null)&&(q!=null))

if (iscarry)//最後一位還有進製

return result->next;

}};

c++ 語法

指標(pointer)

指標是指指向另一種型別的復合型別

取位址符(操作符&)

解應用符(操作符)*

初始化和定義指標

int *p #定義指向int 型物件的指標

獲取物件的位址

int val=123

p=&val //p存放變數val的位址,或者說p是指向變數val的指標

cout<< * p //由符號*得到指標p所指的物件(結果是123)

指向指標的指標

int val=123

int *p=&val // p指向乙個int 型的數

int **pp=&p // pp 指向乙個int 型的指標

# definition for singly-linked list.

# class listnode:

# def __init__(self, x):

# self.val = x

# self.next = none

class

solution

:def

addtwonumbers

(self, l1: listnode, l2: listnode)

-> listnode:

p,q=l1,l2

len1,len2=1,

1# 獲取兩個鍊錶所對應的長度

while p.

next

isnot

none

: len1=len1+

1 p=p.

next

while q.

next

isnot

none

: len2=len2+

1 q=q.

next

# 在較短的鍊錶末尾補0

if len1>=len2:

for _ in

range

(len1-len2)

: q.

next

=listnode(0)

q=q.

next

else

:for _ in

range

(len2-len1)

: p.

next

=listnode(0)

p=p.

next

p,q=l1,l2

result=listnode(-1

) l3=result

iscarry=

0#是否進製

while

(p is

notnone

)and

(q is

notnone):

tag=iscarry+p.val+q.val

l3.next

=listnode(tag%10)

iscarry=

1if tag>=

10else

0 l3=l3.

next

p=p.

next

q=q.

next

if iscarry: l3.

next

=listnode(1)

return result.

next

c++ prime 第5版

02 兩數相加

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

leetcode02 兩數相加

隨機一題 給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8 原因 342 465 807 思路 剛開始很蠢的我居然乙個乙個讀...

LeetCode 02 兩數相加

definition for singly linked list.class listnode def init self,x self.val x self.next none class solution def addtwonumbers self,l1 listnode,l2 listno...