add-two-numbers-ii
注意: 有一种好的方法,是将链表倒转,然后依次相加。 但是,按照题目要求,用了不改变原链表的方法。 就是将两个链表增加到相同长度,然后 递归相加,子函数返回后 处理进位。 https://leetcode.com/problems/add-two-numbers-ii/ package com.company; import java.util.*; class ListNode { int val; ListNode next; ListNode(int x) { val = x; } } class Solution { ListNode addTwo(ListNode l1, ListNode l2) { //System.out.printf("add two %d, %d \n", l1.val, l2.val); ListNode ret = new ListNode(l1.val + l2.val); if (l1.next != null && l2.next != null) { ret.next = addTwo(l1.next, l2.next); ret.val += ret.next.val / 10; ret.next.val = ret.next.val % 10; } else { ret.next = null; } return ret; }