給定兩個非空鍊錶來代表兩個非負整數。數字最高位位於鍊錶開始位置。它們的每個節點只儲存單個數字。將這兩數相加會返回乙個新的鍊錶。
你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。
高階:如果輸入鍊錶不能修改該如何處理?換句話說,你不能對列表中的節點進行翻轉。
示例:輸入: (7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4)
輸出: 7 -> 8 -> 0 -> 7
將兩個鍊錶反轉,然後建立乙個新鍊錶儲存每一位相加的結果,然後將新鍊錶再次反轉。
struct listnode*
reverselist
(struct listnode* head)
return prev;
}struct listnode*
addtwonumbers
(struct listnode* l1,
struct listnode* l2)
else
new_l1=new_l1->next;
new_l2=new_l2->next;
} temp=record->next;
new_list_head_node->next=
null
; record->next=
null
;free
(record);if
(new_l1==
null
&&new_l2==
null
)else}if
(new_l1==
null
&&new_l2!=
null
)else
new_l2=new_l2->next;}if
(carry)
else}if
(new_l2==
null
&&new_l1!=
null
)else
new_l1=new_l1->next;}if
(carry)
else
}return
null
;}
執行結果:
通過顯示詳情
執行用時 :12 ms, 在所有 c 提交中擊敗了96.91% 的使用者
記憶體消耗 :7.4 mb, 在所有 c 提交中擊敗了100.00%的使用者
leetcode 兩數相加 II
條件 給定兩個非空鍊錶來代表兩個非負整數。數字最高位位於鍊錶開始位置。它們的每個節點只儲存單個數字。將這兩數相加會返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。高階 如果輸入鍊錶不能修改該如何處理?換句話說,你不能對列表中的節點進行翻轉。eg l1 2 4 3 6 l2 ...
兩數相加 II
給定兩個非空鍊錶來代表兩個非負整數。數字最高位位於鍊錶開始位置。它們的每個節點只儲存單個數字。將這兩數相加會返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。高階 如果輸入鍊錶不能修改該如何處理?換句話說,你不能對列表中的節點進行翻轉。示例 輸入 7 2 4 3 5 6 4 ...
兩數相加 II
1.問題描述 給定兩個非空鍊錶來代表兩個非負整數。數字最高位位於鍊錶開始位置。它們的每個節點只儲存單個數字。將這兩數相加會返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。高階 如果輸入鍊錶不能修改該如何處理?換句話說,你不能對列表中的節點進行翻轉。示例 輸入 7 2 4 3...