原题
给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。
请你将两个数相加,并以相同形式返回一个表示和的链表。
你可以假设除了数字 0 之外,这两个数都不会以 0 开头。
迭代解法
代码
impl Solution {
pub fn add_two_numbers(
l1: Option<Box<ListNode>>,
l2: Option<Box<ListNode>>,
) -> Option<Box<ListNode>> {
let mut dummy = Box::new(ListNode::new(0));
let mut tail: &mut ListNode = &mut dummy;
let mut p1 = l1;
let mut p2 = l2;
let mut carry = 0;
while p1.is_some() || p2.is_some() || carry != 0 {
let val1 = p1.as_ref().map_or(0, |node| node.val);
let val2 = p2.as_ref().map_or(, |node| node.val);
= val1 + val2 + carry;
carry = sum / ;
tail.next = (::(ListNode::(sum % )));
tail = tail.next.().();
p1 = p1.(|node| node.next);
p2 = p2.(|node| node.next);
}
dummy.next
}
}

