https://leetcode-cn.com/problems/add-two-numbers/
image.png

最优解

  1. class Solution {
  2. public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
  3. int promo = 0;
  4. ListNode newHead = new ListNode(0);
  5. ListNode tmp = newHead;
  6. ListNode tmp1 = l1, tmp2 = l2;
  7. while (tmp1 != null || tmp2 != null || promo != 0) {
  8. int val = promo;
  9. if (tmp1 != null) {
  10. val += tmp1.val;
  11. tmp1 = tmp1.next;
  12. }
  13. if (tmp2 != null) {
  14. val += tmp2.val;
  15. tmp2 = tmp2.next;
  16. }
  17. tmp.next = new ListNode(val % 10);
  18. promo = val / 10;
  19. tmp = tmp.next;
  20. }
  21. return newHead.next;
  22. }
  23. }

image.png