參考資訊:
https://levelup.gitconnected.com/leetcode-problems-add-two-numbers-6a4045ce146c
題目:
解答:
impl Solution { pub fn add_two_numbers(l1: Option<Box<ListNode>>, l2: Option<Box<ListNode>>) -> Option<Box<ListNode>> { let mut l1_cur = l1; let mut l2_cur = l2; let mut carry = 0; let mut r = Some(Box::new(ListNode::new(0))); let mut cur = r.as_mut(); while l1_cur.is_some() || l2_cur.is_some() { let mut sum = carry; if let Some(node) = l1_cur { sum += node.val; l1_cur = node.next; } if let Some(node) = l2_cur { sum += node.val; l2_cur = node.next; } carry = sum / 10; if let Some(node) = cur { node.next = Some(Box::new(ListNode::new(sum % 10))); cur = node.next.as_mut(); } } if carry > 0 { cur.unwrap().next = Some(Box::new(ListNode::new(1))); } return r.unwrap().next; } }