两数相加

    1. /**
    2. * 1- 补零 987 + 23 = 987 + 023 = 9011
    3. * 2- 进位,末尾加一
    4. * 3- 设置头结点
    5. *
    6. * @param l1
    7. * @param l2
    8. * @return
    9. */
    10. public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
    11. ListNode pre = new ListNode(0);
    12. ListNode cur = pre;
    13. int carry = 0;
    14. while (l1 != null || l2 != null) {
    15. int x = l1 == null ? 0 : l1.val;
    16. int y = l2 == null ? 0 : l2.val;
    17. int sum = x + y + carry;
    18. carry = sum / 10;
    19. sum = sum % 10;
    20. cur.next = new ListNode(sum);
    21. cur = cur.next;
    22. if (l1 != null) {
    23. l1 = l1.next;
    24. }
    25. if (l2 != null) {
    26. l2 = l2.next;
    27. }
    28. }
    29. if (carry == 1) {
    30. cur.next = new ListNode(1);
    31. }
    32. return pre.next;
    33. }