關鍵知識點:
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 輸出 ...