您的位置:首页 > 编程语言 > Go语言

Algorithms—2.Add Two Numbers

2015-07-21 17:03 796 查看
思路:递归逐个相加,进位用布尔值传递。

/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
public class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
return add(l1,l2,true);
}
public ListNode add(ListNode l1, ListNode l2,boolean flag) {
boolean a=l1==null;
boolean b=l2==null;
if (a&&b&&flag) {
return null;
}
int val=(a?0:l1.val)+(b?0:l2.val)+(flag?0:1);
int v=val%10;
boolean f=(v==val);
ListNode answer=new ListNode(v);
answer.next=add(a?null:l1.next,b?null:l2.next,f);
return answer;
}
}

耗时:396ms,为数不多的上游

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: