2つの非負の数字を追加しようとしています。その数字は2つの別々のリンクリストに逆順で格納されます。また、答えは数字を逆にして末尾のゼロをつけたリンクリストにする必要があります。文字列を使用して2つの数字(リンクされたリストの桁)を追加する
私は数字を追加してキャリーを毎回維持することでこの問題を解決する方法があることを理解していますが、数字に加算演算を使用して解決しようとしています。
は、ここに私のコードです:
/**
* 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