1. ホーム
  2. java

[解決済み】リンクリストの負の値の数でnegativeCntrを代入する

2021-12-29 10:53:13

質問

負のカウンタ(negativeCnter)にリンクリストの負の値の数を代入するのに問題があります。

正直なところ、全体的にどうすればいいのか分からない状態です。

次のような出力が必要です。

ネガポジの数 6 (またはそのいずれか) 現在の ネガポジの数 0

ありがとうございました。

// ===== Code from file IntNode.java =====
public class IntNode {
   private int dataVal;
   private IntNode nextNodePtr;

   public IntNode(int dataInit, IntNode nextLoc) {
      this.dataVal = dataInit;
      this.nextNodePtr = nextLoc;
   }

   public IntNode(int dataInit) {
      this.dataVal = dataInit;
      this.nextNodePtr = null;
   }

   /* Insert node after this node.
   * Before: this -- next
   * After:  this -- node -- next
   */
   public void insertAfter(IntNode nodePtr) {
      IntNode tmpNext;

      tmpNext = this.nextNodePtr;    // Remember next
      this.nextNodePtr = nodePtr;    // this -- node -- ?
      nodePtr.nextNodePtr = tmpNext; // this -- node -- next
      return;
   }

   // Grab location pointed by nextNodePtr
   public IntNode getNext() {
      return this.nextNodePtr;
   }
   public int getDataVal() {
      return this.dataVal;
   }
}
// ===== end =====

// ===== Code from file CustomLinkedList.java =====
import java.util.Random;

public class CustomLinkedList {
   public static void main (String [] args) {
      Random randGen = new Random();
      IntNode headObj; // Create intNode objects
      IntNode currObj;
      IntNode lastObj;
      int i = 0; // Loop index
      int negativeCntr = 0;

      headObj = new IntNode(-1); // Front of nodes list
      lastObj = headObj;

      for (i = 0; i < 10; ++i) { // Append 10 rand nums
         int rand = randGen.nextInt(21) - 10;
         currObj = new IntNode(rand);
         lastObj.insertAfter(currObj); // Append curr
         lastObj = currObj; // Curr is the new last item
      }

      currObj = headObj; // Print the list
      while (currObj != null) {
         System.out.print(currObj.getDataVal() + ", ");
         currObj = currObj.getNext();
      }
      System.out.println("");

      currObj = headObj; // Count number of negative numbers
      while (currObj != null) {

         /* Your solution goes here  */

         currObj = currObj.getNext();
      }
      System.out.println("Number of negatives: " + negativeCntr);

      return;
   }
}
// ===== end =====

解決方法は?

解決方法は

negativeCntr++;