【发布时间】:2016-08-19 13:01:31
【问题描述】:
我正在尝试添加两个非负数,它们的数字以相反的顺序存储在两个单独的链表中。答案也应该是一个数字反转且没有尾随零的链表。
我知道有一种方法可以通过添加数字并每次保持进位来解决这个问题,但我正在尝试通过对数字使用加法运算来解决这个问题。
这是我的代码:
/**
* 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;
}
}
我的代码给出了错误的答案。谁能指出错误?
【问题讨论】:
-
@Aastik - 你试过我的解决方案了吗?如果有效,请接受答案并投票!
标签: java string linked-list