addTwoNumbersLinkedList function

LinkedListNode<int>? addTwoNumbersLinkedList(
  1. LinkedListNode<int>? l1,
  2. LinkedListNode<int>? l2
)

Implementation

LinkedListNode<int>? addTwoNumbersLinkedList(
  LinkedListNode<int>? l1,
  LinkedListNode<int>? l2,
) {
  final dummy = LinkedListNode<int>(0);
  var curr = dummy;
  int carry = 0;
  while (l1 != null || l2 != null || carry != 0) {
    final sum = (l1?.value ?? 0) + (l2?.value ?? 0) + carry;
    carry = sum ~/ 10;
    curr.next = LinkedListNode<int>(sum % 10);
    curr = curr.next!;
    l1 = l1?.next;
    l2 = l2?.next;
  }
  return dummy.next;
}