Ajithプラサド:
私はその桁に番号をスライスすると逆の順序でリンクリストの桁を格納するためのプログラムを書いています。しかし、私は、リンクされたリストを返す方法を理解することはできませんよ?
私は頭のListNodeを作成しようとしたが、それに失敗しています。
public class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
}
class Solution{
int sum=123;
public ListNode sol(){
answer = new ListNode(0);
while (sum > 0) {
int digit = sum % 10;
answer= new ListNode(digit);
answer= answer.next;
sum /= 10;
}
return //////
}
}
GhostCat敬礼モニカC.:
ここに:
answer = new ListNode(0);
そのListNode
インスタンスは、最初の要素、およびそのため、あなたのリストの「根」です。しかし、あなたのリストのみが単独でリンクされています。あなたは前の要素に戻って取得することはできません!あなたはそれが始めた場所を覚えておく必要があります!
言い換えれば、2つのオプションがあります。
- 二重リンクリストにあなたのリストを回す(そう:各ノードは、その前身を覚えています)か、
- そのルートノードを覚えています。
使用している場合:つまり、answer
あなたのリストの中に「移動ポインタ」として、その後、あなたのような何かをする必要があります。
root = new ListNode(0); // remember this, it is the start of the list!
answer = root;
そして、あなたは維持することを確認する必要がroot
周りと変わりません!その参照はあなたのリストのデータへの(唯一無二!)の入り口を表すので。あなたはそれを失ったとき、すべてが失われた;-)