2016-10-21 6 views
0

リンクリストにノード値を見つけるプログラムを作成しようとしています。私は、値がリストに存在するときにプログラムに値を返させ、リストに存在しないときはnullを返します。しかし、リンクされたリストにない値(たとえば4)を入力すると、nullを返すことはできません。私のListNodeは "null"を返すことができません

package com.company; 

    /** 
    * Created by Administrator on 2016/10/20 0020. 
    */ 
    public class find { 
     public static void main(String[] args){ 
      ListNode node1 = new ListNode(1); 
      ListNode node2 = new ListNode(2); 
      ListNode node3 = new ListNode(3); 

      node1.next = node2; 
      node2.next = node3; 

      ListNode node = findNode(node1,4); 
      System.out.println(node.val); 

     } 

     public static ListNode findNode(ListNode head, int val){ 
      for (ListNode node = head; node != null; node = node.next){ 
       if (node.val == val){ 
        return node; 
       } 
      } 
      return null; 
     } 
    } 

    class ListNode{ 
     int val; 
     ListNode next; 
     ListNode(int x){ 
       val = x; 
       next = null; 
     } 


    } 
+0

コードを実行してnullポインタ例外が発生し、nullが返されました。 –

答えて

0
Node node = findNode(node1,4); 
    if(node == null) 
    { 
     System.out.println("The Node was not found in the linked list"); 
    } 
    else 
     System.out.println(node.val); 

チェックした場合のノードが所望の値に存在しない場合にfindNodeがnullを返したときにnullポインタ例外に遭遇しないように追加します。あなたの現在の実装は動作し、私はそれを実行し、設計通りにnullを返します。

関連する問題