给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。
    请你将两个数相加,并以相同形式返回一个表示和的链表。
    你可以假设除了数字 0 之外,这两个数都不会以 0 开头。
    示例 1:
    image.png

    输入:l1 = [2,4,3], l2 = [5,6,4]
    输出:[7,0,8]
    解释:342 + 465 = 807.

    1. <?php
    2. /**
    3. * Definition for a singly-linked list.
    4. * class ListNode {
    5. * public $val = 0;
    6. * public $next = null;
    7. * function __construct($val) { $this->val = $val; }
    8. * }
    9. */
    10. class Solution {
    11. /**
    12. * @param ListNode $l1
    13. * @param ListNode $l2
    14. * @return ListNode
    15. */
    16. function addTwoNumbers($n1, $n2) {
    17. $pre = new ListNode(0);
    18. $current = $pre;
    19. $carry = 0;
    20. while ($n1 !=null || $n2 !=null){
    21. $sum = ($n1->val ?? 0) + ($n2->val ?? 0) + $carry;
    22. $carry = intval($sum / 10);
    23. //计算当前链表插入值,求模取余
    24. $sum = $sum % 10;
    25. $current->next = new ListNode($sum);
    26. $current = $current->next;
    27. if (!empty($n1)) {
    28. $n1 = $n1->next;
    29. }
    30. if ($n2!=null) {
    31. $n2 = $n2->next;
    32. }
    33. }
    34. if ($carry == 1){
    35. $current->next = new ListNode($carry);
    36. }
    37. return $pre->next;
    38. }
    39. }

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/add-two-numbers
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。