leetcode 鍊錶相加

2021-10-04 07:25:46 字數 1326 閱讀 1259

給定兩個用鍊錶表示的整數,每個節點包含乙個數字。

這些數字是反向存放的,也就是個位排在鍊錶首部。

編寫函式對這兩個整數求和,並用鍊錶形式返回結果。

示例:輸入:(7 -> 1 -> 6) + (5 -> 9 -> 2),即617 + 295

輸出:2 -> 1 -> 9,即912

採用原地演算法,比較兩個鍊錶長度,如果長度一致,那麼鍊錶相加到任一鍊錶,計算最後一位相加進製情況,如果是1,則在兩個鍊錶任選一多分配乙個長度,並賦值為1。

如果乙個鍊錶長度大於另乙個鍊錶,思路一致,只不過要確認短的鍊錶何時終止。

/**

* definition for singly-linked list.

* struct listnode ;

*/struct listnode*

addtwonumbers

(struct listnode* l1,

struct listnode* l2)

p1=l1;

while

(p2)

p2=l2;

//printf("%d %d\n",len1,len2);

if(len1==len2)

else

if(p1->next==

null

) p1=p1->next;

p2=p2->next;}if

(carry==0)

else

}else

if(len1else

p1=p1->next;

p2=p2->next;}if

(carry==0)

while

(p2)

else

if(p2->next==

null

) p2=p2->next;}if

(carry==0)

return l2;

else

}else

else

p1=p1->next;

p2=p2->next;

}while

(p1)

else

else}if

(p1->next==

null

) p1=p1->next;}if

(carry==0)

else

}return l1;

}

執行用時 :24 ms, 在所有 c 提交中擊敗了32.52% 的使用者

記憶體消耗 :6.9 mb, 在所有 c 提交中擊敗了100.00%的使用者

leetcode 2鍊錶相加

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

演算法學習 鍊錶相加

題目 給定兩個鍊錶,分別表示兩個非負整數。他們的數字逆序儲存在鍊錶中,且每個節點只儲存乙個數字,計算兩個數的和,並且返回和的煉表頭指標。如 輸入2 4 3 5 6 4,輸出 7 0 8 此題為簡單的數學加法計算和簡單的鍊錶操作的結合,很簡單,直接附上 include stdafx.h include...

Leetcode NO 2 兩數相加 鍊錶相加

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