C語言 Leetcode 2 兩數相加

2021-10-03 12:41:28 字數 790 閱讀 9440

關鍵知識點:

1、鍊錶的操作都會新增乙個頭節點struct listnode *res並且分配記憶體,同時返回頭指標時應返回res->next,關於頭指標和頭節點可以參考以下的blog:

2、新建鍊錶節點時,一定要記住對於末尾的鍊錶指標賦值null,否則會出現記憶體分配錯誤,如下:res_cur->next->next = null;

解題思路:

1、鍊錶兩數相加,要考慮兩數非空和進製的問題,演算法上相對比較簡單,注意使用current節點,降低過程資料處理的複雜度,這個在鍊錶的處理過程中比較常見。

struct listnode*

addtwonumbers

(struct listnode* l1,

struct listnode* l2)

else

if(l2_cur !=

null

)else

res_cur -> next =

(struct listnode *

)malloc

(sizeof

(struct listnode));

res_cur->next->next =

null

; sum = m1 + m2 + carrybit;

res_cur->next -> val = sum %10;

carrybit = sum/10;

res_cur = res_cur->next;

}return res->next;

}

Python實現leetcode 2 兩數相加

原題位址 python實現單向無序鍊錶 singly linked list 可參考鏈結 definition for singly linked list.class listnode def init self,x self.val x self.next none 將單向無序鍊錶轉為字串形式。...

LeetCode2兩數相加 C語言

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

leetcode 2 兩數相加 C語言

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