我想添加两个非负数,其中的数字以相反的顺序存储在两个单独的链接列表中。答案也应该是一个链接列表,其中的数字反转并且不包含尾随零。使用字符串添加给定的两个数字(链接列表中的数字)
我知道有一种方法可以通过每次添加数字和保持进位来解决这个问题,但我试图通过在数字上使用加法操作来解决此问题。
这里是我的代码:
/**
* Definition for singly-linked list.
* class ListNode {
* public int val;
* public ListNode next;
* ListNode(int x) { val = x; next = null; }
* }
*/
public class Solution {
public ListNode addTwoNumbers(ListNode a, ListNode b) {
if(a==null || b==null){
return null;
}
String num1 = "";
String num2 = "";
ListNode temp1 = a;
ListNode temp2 = b;
while(temp1!=null){
num1 = num1+Integer.toString(temp1.val);
temp1 = temp1.next;
}
new StringBuilder(num1).reverse().toString();
double value1 = Double.parseDouble(num1);
while(temp2!=null){
num2 = num2+Integer.toString(temp2.val);
temp2 = temp2.next;
}
new StringBuilder(num2).reverse().toString();
double value2 = Double.parseDouble(num2);
double result = value1+value2;
String res = String.format("%.0f",result);
ListNode first_node = new ListNode(Character.getNumericValue(res.charAt(0)));
ListNode ans = first_node;
for(int j=1;j<res.length();j++){
ListNode node = new ListNode(Character.getNumericValue(res.charAt(j)));
add(node,ans);
}
return ans;
}
public void add(ListNode node, ListNode ans){
ListNode temp;
temp = ans;
ans = node;
ans.next = temp;
}
}
我的代码一直给人错误的答案。任何人都可以指出错误吗?
http://stackoverflow.com/help/how-to-ask –
@Aastik - 你试试我的解决方案?如果它工作,请接受答案并投票! – JRG