human
ジュリアコードの次の問題の解決策を教えてください。

2つの非陰性整数を表す2つの非空白のリンクされたリストが与えられます。数字は逆の順序で保存され、それぞれのノードには1桁が含まれています。2つの番号を追加し、リンクリストとして合計を返します。

2つの数値には、数値0自体を除いて、先行ゼロが含まれていないと仮定することができます。

例1：
入力：L1 = [2,4,3]、L2 = [5,6,4]
出力：[7,0,8]
説明：342 + 465 = 807。
例2：

入力：L1 = [0]、L2 = [0]
出力：[0]
例3：

入力：L1 = [9,9,9,9,9,9,9]、L2 = [9,9,9,9]
出力：[8,9,9,9,0,0,0,1]
制約：

各リンクリストのノードの数は、範囲です[1、100]。
0 <= node.val <= 9
リストには、主要なゼロがない数字を表すことが保証されています。
gpt
ここにジュリアでの解決策がある：

```vbnet
# Definition for singly-linked list.
struct ListNode
    val::Int64
    next::Union{Nothing, ListNode}
end

function addTwoNumbers(l1::ListNode, l2::ListNode)
    dummy = ListNode(0, nothing)
    curr = dummy
    carry = 0
    while (l1 != nothing) || (l2 != nothing)
        x = (l1 != nothing) ? l1.val : 0
        y = (l2 != nothing) ? l2.val : 0
        sum = carry + x + y
        carry = sum >= 10 ? 1 : 0
        curr.next = ListNode(sum % 10, nothing)
        curr = curr.next
        l1 = (l1 != nothing) ? l1.next : nothing
        l2 = (l2 != nothing) ? l2.next : nothing
    end
    if carry > 0
        curr.next = ListNode(carry, nothing)
    end
    return dummy.next
end
```