为什么会有如下运行结果,我的ans为什么只返回了一个节点,其它例子也能正确返回全部节点。

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
        ans = l1      
        while l1 or l2:            
            if not l1:
                l1 = ListNode(val = 0)
            if not l2:
                l2 = ListNode(val = 0)
            l1.val += l2.val 
            if l1.val >= 10:                
                l1.val %= 10
                if l1.next:
                    l1.next.val += 1
                else:
                    l1.next = ListNode(val = 1)
            l1 = l1.next
            l2 = l2.next
        return ans

img

这是力扣第二题,因为ans返回的是最开始的l1头节点,而这个头节点后面会因为l1长度不够提前指向none,那么问题来了,怎么返回遍历相加后的头节点