https://leetcode-cn.com/problems/sum-lists-lcci/
[brainstorm]
1 list to num
2 num to list
[brainstorm 2]
0 use recursion
1 handle two non-empty list as general case
2 handle one empty list,
still it cause cascade like general case
3 handle two empty list
[bug]
1 cannot pass corner case
[code]
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
int sum = toNum(l1)+toNum(l2);
return toList(sum);
}
int toNum(ListNode list){
int num = 0;
int rank=1;
while(list!=null){
int digit = list.val;
num += digit*rank;
list = list.next;
rank *= 10;
}
return num;
}
ListNode toList(int val){
if(val==0){
return new ListNode(0);
}
ListNode pre = new ListNode(-1);
int num = val;
ListNode cur = pre;
while(num!=0){
int digit = num%10;
num = num/10;
ListNode next = new ListNode(digit);
cur.next = next;
cur = next;
}
return pre.next;
}
}