0

私はいくつかのリンクされたリストの質問を解決したいが、私はコンソールからの入力を取ることができない、私は間違っているか分からない。私は私のコードで間違って何をやっているJava(Collectionなし)のSingly/Doubly Linked Listでスキャナを使用してコンソール入力を行う方法は?

import java.util.*; 
class ScannerInputLinkedList{ 
    static class Node{ 
     int data; 
     Node next; 
    } 
    void insertNode(Node head, int data){ 
     Node curr = head; 

     Node temp = new Node(); 
     temp.data = data; 
     temp.next = null; 

     while(curr.next!=null){ 

      curr = curr.next; 
     } 
     curr.next = temp; 
     System.out.print(curr.data+"->"); 
    } 
    System.out.println(); 
    public static void main(String[] args) { 
     ScannerInputLinkedList obj = new ScannerInputLinkedList(); 
     Scanner sc = new Scanner(System.in); 
     int t = sc.nextInt(); 
     int x; 
     Node head = new Node(); 
     while(t-- > 0){ 
      x = sc.nextInt(); 
      obj.insertNode(head, x); 

     } 
    } 

} 
+1

ユーザー入力からリンクリストを作成してそのようなリストをテストするかどうか、少し混乱しますか? – Crabime

+1

は、私はあなたが今までcricket_007 @ 'obj.head' –

+0

を割り当てたとは思わない:それを取得していない、あなたはそれを –

答えて

0

あなたのコードでほんの少し問題が。 printステートメント(mainメソッドの上にある)はどのメソッドの外にもあります。実際、それはまったく必要ではありません。それを削除し、System.out.print(...)をSystem.out.println(...)に19行目で変更します。これにより、コードにエラーが発生しなくなります。

この解決策は、あなたが入力を得ることができなかったというあなたの問題に関するものでした。それとは別に、あなたが達成しようとしていることは不明です。リンクされたリストにノードを追加しようとしている場合は、ロジックを再チェックする必要があります。あなたのコードは既にノードが追加されているリストを作成していますが、追加するノードは次のノードであるノードのデータを印刷しています。入力のため

[T = 1、X = 3]、コードが印刷されています0->。この "0"は入力セットの最初のノードのデータであり、新しいノードは2番目のノードになります。

とにかく、ちょうど入力を取ることができないという問題を解決するために、ここで修正されたコードです。あなたは、netbeansやeclipseのようなIDEを使って、コードの何が間違っているかを素早く特定することができます。

import java.util.*; 
class ScannerInputLinkedList{ 

static class Node{ 
    int data; 
    Node next; 
} 
void insertNode(Node head, int data){ 
    Node curr = head; 

    Node temp = new Node(); 
    temp.data = data; 
    temp.next = null; 

    while(curr.next!=null){ 

     curr = curr.next; 
    } 
    curr.next = temp; 
    System.out.println(curr.data+"->"); 
} 
public static void main(String[] args) { 
    ScannerInputLinkedList obj = new ScannerInputLinkedList(); 
    Scanner sc = new Scanner(System.in); 
    int t = sc.nextInt(); 
    int x; 
    Node head = new Node(); 
    while(t-- > 0){ 
     x = sc.nextInt(); 
     obj.insertNode(head, x); 

    } 
} 
} 
関連する問題